mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 18:37:33 +00:00
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs into feature/pgtk
This commit is contained in:
commit
afcd13783e
356 changed files with 7021 additions and 5419 deletions
1969
ChangeLog.3
1969
ChangeLog.3
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
|||
;;; admin.el --- utilities for Emacs administration
|
||||
;;; admin.el --- utilities for Emacs administration -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -254,7 +254,7 @@ ROOT should be the root of an Emacs source tree."
|
|||
(search-forward "INFO_COMMON = ")
|
||||
(let ((start (point)))
|
||||
(end-of-line)
|
||||
(while (and (looking-back "\\\\")
|
||||
(while (and (looking-back "\\\\" (- (point) 2))
|
||||
(zerop (forward-line 1)))
|
||||
(end-of-line))
|
||||
(append (split-string (replace-regexp-in-string
|
||||
|
|
@ -930,13 +930,19 @@ changes (in a non-trivial way). This function does not check for that."
|
|||
(interactive
|
||||
(list (progn
|
||||
(require 'debbugs-gnu)
|
||||
(defvar debbugs-gnu-emacs-blocking-reports)
|
||||
(defvar debbugs-gnu-emacs-current-release)
|
||||
(completing-read
|
||||
"Emacs release: "
|
||||
(mapcar #'identity debbugs-gnu-emacs-blocking-reports)
|
||||
nil t debbugs-gnu-emacs-current-release))))
|
||||
|
||||
(require 'debbugs-gnu)
|
||||
(declare-function debbugs-get-status "debbugs" (&rest bug-numbers))
|
||||
(declare-function debbugs-get-attribute "debbugs" (bug-or-message attribute))
|
||||
(require 'reporter)
|
||||
(declare-function mail-position-on-field "sendmail" (field &optional soft))
|
||||
(declare-function mail-text "sendmail" ())
|
||||
|
||||
(when-let ((id (alist-get version debbugs-gnu-emacs-blocking-reports
|
||||
nil nil #'string-equal))
|
||||
|
|
@ -958,11 +964,11 @@ changes (in a non-trivial way). This function does not check for that."
|
|||
(insert "
|
||||
The following bugs are regarded as release-blocking for Emacs " version ".
|
||||
People are encouraged to work on them with priority.\n\n")
|
||||
(dolist (_ blockedby-status)
|
||||
(unless (equal (debbugs-get-attribute _ 'pending) "done")
|
||||
(dolist (i blockedby-status)
|
||||
(unless (equal (debbugs-get-attribute i 'pending) "done")
|
||||
(insert (format "bug#%d %s\n"
|
||||
(debbugs-get-attribute _ 'id)
|
||||
(debbugs-get-attribute _ 'subject)))))
|
||||
(debbugs-get-attribute i 'id)
|
||||
(debbugs-get-attribute i 'subject)))))
|
||||
(insert "
|
||||
If you use the debbugs package from GNU ELPA, you can apply the
|
||||
following form to see all bugs which block a given release:
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; authors.el --- utility for maintaining Emacs's AUTHORS file
|
||||
;;; authors.el --- utility for maintaining Emacs's AUTHORS file -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2000-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -1254,7 +1254,7 @@ Additionally, for these logs we apply the `lax' elements of
|
|||
(defun authors-disambiguate-file-name (fullname)
|
||||
"Convert FULLNAME to an unambiguous relative-name."
|
||||
(let ((relname (file-name-nondirectory fullname))
|
||||
dir parent)
|
||||
dir)
|
||||
(if (and (member relname authors-ambiguous-files)
|
||||
;; Try to identify the top-level directory.
|
||||
;; FIXME should really use ROOT from M-x authors.
|
||||
|
|
@ -1266,8 +1266,8 @@ Additionally, for these logs we apply the `lax' elements of
|
|||
;; I think it looks weird to see eg "lisp/simple.el".
|
||||
;; But for eg Makefile.in, we do want to say "lisp/Makefile.in".
|
||||
(if (and (string-equal "lisp"
|
||||
(setq parent (file-name-nondirectory
|
||||
(directory-file-name dir))))
|
||||
(file-name-nondirectory
|
||||
(directory-file-name dir)))
|
||||
;; TODO better to simply have hard-coded list?
|
||||
;; Only really Makefile.in where this applies.
|
||||
(not (file-exists-p
|
||||
|
|
@ -1569,9 +1569,9 @@ and changed by AUTHOR."
|
|||
(cons (cons file (cdr (assq :changed actions)))
|
||||
changed-list))))))
|
||||
(if wrote-list
|
||||
(setq wrote-list (sort wrote-list 'string-lessp)))
|
||||
(setq wrote-list (sort wrote-list #'string-lessp)))
|
||||
(if cowrote-list
|
||||
(setq cowrote-list (sort cowrote-list 'string-lessp)))
|
||||
(setq cowrote-list (sort cowrote-list #'string-lessp)))
|
||||
(when changed-list
|
||||
(setq changed-list (sort changed-list
|
||||
(lambda (a b)
|
||||
|
|
@ -1579,7 +1579,7 @@ and changed by AUTHOR."
|
|||
(string-lessp (car a) (car b))
|
||||
(> (cdr a) (cdr b))))))
|
||||
(setq nchanged (length changed-list))
|
||||
(setq changed-list (mapcar 'car changed-list)))
|
||||
(setq changed-list (mapcar #'car changed-list)))
|
||||
(if (> (- nchanged authors-many-files) 2)
|
||||
(setcdr (nthcdr authors-many-files changed-list)
|
||||
(list (format "and %d other files" (- nchanged authors-many-files)))))
|
||||
|
|
@ -1688,12 +1688,12 @@ list of their contributions.\n")
|
|||
(when authors-invalid-file-names
|
||||
(insert "Unrecognized file entries found:\n\n")
|
||||
(mapc (lambda (f) (if (not (string-match "^[A-Za-z]+$" f)) (insert f "\n")))
|
||||
(sort authors-invalid-file-names 'string-lessp)))
|
||||
(sort authors-invalid-file-names #'string-lessp)))
|
||||
(when authors-ignored-names
|
||||
(insert "\n\nThese authors were ignored:\n\n"
|
||||
(mapconcat
|
||||
'identity
|
||||
(sort authors-ignored-names 'string-lessp) "\n")))
|
||||
#'identity
|
||||
(sort authors-ignored-names #'string-lessp) "\n")))
|
||||
(goto-char (point-min))
|
||||
(compilation-mode)
|
||||
(message "Errors were found. See buffer %s" (buffer-name))))
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; cus-test.el --- tests for custom types and load problems
|
||||
;;; cus-test.el --- tests for custom types and load problems -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1998, 2000, 2002-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -112,6 +112,7 @@ Names should be as they appear in loaddefs.el.")
|
|||
;; This avoids a hang of `cus-test-apropos' in 21.2.
|
||||
;; (add-to-list 'cus-test-skip-list 'sh-alias-alist)
|
||||
|
||||
(defvar viper-mode)
|
||||
(or noninteractive
|
||||
;; Never Viperize.
|
||||
(setq viper-mode nil))
|
||||
|
|
@ -196,7 +197,7 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
mismatch)
|
||||
(when (default-boundp symbol)
|
||||
(push (funcall get symbol) values)
|
||||
(push (eval (car (get symbol 'standard-value))) values))
|
||||
(push (eval (car (get symbol 'standard-value)) t) values))
|
||||
(if (boundp symbol)
|
||||
(push (symbol-value symbol) values))
|
||||
;; That does not work.
|
||||
|
|
@ -222,7 +223,7 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
(get symbol 'standard-value))))
|
||||
(and (consp c-value)
|
||||
(boundp symbol)
|
||||
(not (equal (eval (car c-value)) (symbol-value symbol)))
|
||||
(not (equal (eval (car c-value) t) (symbol-value symbol)))
|
||||
(add-to-list 'cus-test-vars-with-changed-state symbol)))
|
||||
|
||||
(if mismatch
|
||||
|
|
@ -239,7 +240,7 @@ The detected problematic options are stored in `cus-test-errors'."
|
|||
(defun cus-test-cus-load-groups (&optional cus-load)
|
||||
"Return a list of current custom groups.
|
||||
If CUS-LOAD is non-nil, include groups from cus-load.el."
|
||||
(append (mapcar 'cdr custom-current-group-alist)
|
||||
(append (mapcar #'cdr custom-current-group-alist)
|
||||
(if cus-load
|
||||
(with-temp-buffer
|
||||
(insert-file-contents (locate-library "cus-load.el"))
|
||||
|
|
@ -290,7 +291,7 @@ currently defined groups."
|
|||
"Call `custom-load-symbol' on all atoms."
|
||||
(interactive)
|
||||
(if noninteractive (let (noninteractive) (require 'dunnet)))
|
||||
(mapatoms 'custom-load-symbol)
|
||||
(mapatoms #'custom-load-symbol)
|
||||
(run-hooks 'cus-test-after-load-libs-hook))
|
||||
|
||||
(defmacro cus-test-load-1 (&rest body)
|
||||
|
|
@ -346,7 +347,7 @@ Optional argument ALL non-nil means list all (non-obsolete) Lisp files."
|
|||
(prog1
|
||||
;; Hack to remove leading "./".
|
||||
(mapcar (lambda (e) (substring e 2))
|
||||
(apply 'process-lines find-program
|
||||
(apply #'process-lines find-program
|
||||
"." "-name" "obsolete" "-prune" "-o"
|
||||
"-name" "[^.]*.el" ; ignore .dir-locals.el
|
||||
(if all
|
||||
|
|
@ -542,7 +543,7 @@ in the Emacs source directory."
|
|||
(message "No options not loaded by custom-load-symbol found")
|
||||
(message "The following options were not loaded by custom-load-symbol:")
|
||||
(cus-test-message
|
||||
(sort cus-test-vars-not-cus-loaded 'string<)))
|
||||
(sort cus-test-vars-not-cus-loaded #'string<)))
|
||||
|
||||
(dolist (o groups-loaded)
|
||||
(setq groups-not-loaded (delete o groups-not-loaded)))
|
||||
|
|
@ -550,7 +551,7 @@ in the Emacs source directory."
|
|||
(if (not groups-not-loaded)
|
||||
(message "No groups not in cus-load.el found")
|
||||
(message "The following groups are not in cus-load.el:")
|
||||
(cus-test-message (sort groups-not-loaded 'string<)))))
|
||||
(cus-test-message (sort groups-not-loaded #'string<)))))
|
||||
|
||||
(provide 'cus-test)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; find-gc.el --- detect functions that call the garbage collector
|
||||
;;; find-gc.el --- detect functions that call the garbage collector -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 1992, 2001-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -42,14 +42,14 @@ Each entry has the form (FUNCTION . FUNCTIONS-THAT-CALL-IT).")
|
|||
Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).")
|
||||
|
||||
|
||||
;;; Functions on this list are safe, even if they appear to be able
|
||||
;;; to call the target.
|
||||
;; Functions on this list are safe, even if they appear to be able
|
||||
;; to call the target.
|
||||
|
||||
(defvar find-gc-noreturn-list '(Fsignal Fthrow wrong_type_argument))
|
||||
|
||||
;;; This was originally generated directory-files, but there were
|
||||
;;; too many files there that were not actually compiled. The
|
||||
;;; list below was created for a HP-UX 7.0 system.
|
||||
;; This was originally generated directory-files, but there were
|
||||
;; too many files there that were not actually compiled. The
|
||||
;; list below was created for a HP-UX 7.0 system.
|
||||
|
||||
(defvar find-gc-source-files
|
||||
'("dispnew.c" "scroll.c" "xdisp.c" "window.c"
|
||||
|
|
@ -76,11 +76,11 @@ Also store it in `find-gc-unsafe-list'."
|
|||
(lambda (x y)
|
||||
(string-lessp (car x) (car y))))))
|
||||
|
||||
;;; This does a depth-first search to find all functions that can
|
||||
;;; ultimately call the function "target". The result is an a-list
|
||||
;;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs
|
||||
;;; are (one of) the unsafe functions that these functions directly
|
||||
;;; call.
|
||||
;; This does a depth-first search to find all functions that can
|
||||
;; ultimately call the function "target". The result is an a-list
|
||||
;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs
|
||||
;; are (one of) the unsafe functions that these functions directly
|
||||
;; call.
|
||||
|
||||
(defun find-unsafe-funcs (target)
|
||||
(setq find-gc-unsafe-list (list (list target)))
|
||||
|
|
@ -134,7 +134,8 @@ Also store it in `find-gc-unsafe-list'."
|
|||
(setcdr entry (cons name (cdr entry)))))))))))))
|
||||
|
||||
(defun trace-use-tree ()
|
||||
(setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called)))
|
||||
(setq find-gc-subrs-callers
|
||||
(mapcar #'list (mapcar #'car find-gc-subrs-called)))
|
||||
(let ((ptr find-gc-subrs-called)
|
||||
p2 found)
|
||||
(while ptr
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
;;; gitmerge.el --- help merge one Emacs branch into another
|
||||
;;; gitmerge.el --- help merge one Emacs branch into another -*- lexical-binding: t; -*-
|
||||
|
||||
;; Copyright (C) 2010-2021 Free Software Foundation, Inc.
|
||||
|
||||
|
|
@ -390,7 +390,7 @@ is nil, only the single commit BEG is merged."
|
|||
(if end "s were " " was ")
|
||||
"skipped:\n\n")
|
||||
""))
|
||||
(apply 'call-process "git" nil t nil "log" "--oneline"
|
||||
(apply #'call-process "git" nil t nil "log" "--oneline"
|
||||
(if end (list (concat beg "~.." end))
|
||||
`("-1" ,beg)))
|
||||
(insert "\n")
|
||||
|
|
@ -422,7 +422,7 @@ MISSING must be a list of SHA1 strings."
|
|||
(unless end
|
||||
(setq end beg))
|
||||
(unless (zerop
|
||||
(apply 'call-process "git" nil t nil "merge" "--no-ff"
|
||||
(apply #'call-process "git" nil t nil "merge" "--no-ff"
|
||||
(append (when skip '("-s" "ours"))
|
||||
`("-m" ,commitmessage ,end))))
|
||||
(gitmerge-write-missing missing from)
|
||||
|
|
|
|||
|
|
@ -927,9 +927,9 @@ Manual}). For customizations, see the Custom group @code{time-stamp}.
|
|||
|
||||
If you have made extensive changes to a file-visiting buffer and
|
||||
then change your mind, you can @dfn{revert} the changes and go back to
|
||||
the saved version of the file. To do this, type @kbd{M-x
|
||||
revert-buffer}. Since reverting unintentionally could lose a lot of
|
||||
work, Emacs asks for confirmation first.
|
||||
the saved version of the file. To do this, type @kbd{C-x g}. Since
|
||||
reverting unintentionally could lose a lot of work, Emacs asks for
|
||||
confirmation first.
|
||||
|
||||
The @code{revert-buffer} command tries to position point in such a
|
||||
way that, if the file was edited only slightly, you will be at
|
||||
|
|
|
|||
|
|
@ -2027,6 +2027,13 @@ highlighting:
|
|||
@item lazy-highlight-initial-delay
|
||||
@vindex lazy-highlight-initial-delay
|
||||
Time in seconds to wait before highlighting visible matches.
|
||||
Applies only if the search string is less than
|
||||
@code{lazy-highlight-no-delay-length} characters long.
|
||||
|
||||
@item lazy-highlight-no-delay-length
|
||||
@vindex lazy-highlight-no-delay-length
|
||||
For search strings at least as long as the value of this variable,
|
||||
lazy highlighting of matches starts immediately.
|
||||
|
||||
@item lazy-highlight-interval
|
||||
@vindex lazy-highlight-interval
|
||||
|
|
|
|||
|
|
@ -1799,15 +1799,19 @@ pairs. The following properties are supported:
|
|||
The value should be a function to add annotations in the completions
|
||||
buffer. This function must accept one argument, a completion, and
|
||||
should either return @code{nil} or a string to be displayed next to
|
||||
the completion.
|
||||
the completion. Unless this function puts own face on the annotation
|
||||
suffix string, the @code{completions-annotations} face is added by
|
||||
default to that string.
|
||||
|
||||
@item :affixation-function
|
||||
The value should be a function to add prefixes and suffixes to
|
||||
completions. This function must accept one argument, a list of
|
||||
completions, and should return such a list of completions where
|
||||
each element contains a list of three elements: a completion,
|
||||
a prefix string, and a suffix string. This function takes priority
|
||||
over @code{:annotation-function}.
|
||||
a prefix string, and a suffix string. When this function
|
||||
returns a list of two elements, it is interpreted as a list
|
||||
of a completion and a suffix string like in @code{:annotation-function}.
|
||||
This function takes priority over @code{:annotation-function}.
|
||||
|
||||
@item :exit-function
|
||||
The value should be a function to run after performing completion.
|
||||
|
|
@ -1907,6 +1911,9 @@ The value should be a function for @dfn{annotating} completions. The
|
|||
function should take one argument, @var{string}, which is a possible
|
||||
completion. It should return a string, which is displayed after the
|
||||
completion @var{string} in the @file{*Completions*} buffer.
|
||||
Unless this function puts own face on the annotation suffix string,
|
||||
the @code{completions-annotations} face is added by default to
|
||||
that string.
|
||||
|
||||
@item affixation-function
|
||||
The value should be a function for adding prefixes and suffixes to
|
||||
|
|
@ -1915,8 +1922,10 @@ completions. The function should take one argument,
|
|||
return such a list of @var{completions} where each element contains a list
|
||||
of three elements: a completion, a prefix which is displayed before
|
||||
the completion string in the @file{*Completions*} buffer, and
|
||||
a suffix displayed after the completion string. This function
|
||||
takes priority over @code{annotation-function}.
|
||||
a suffix displayed after the completion string. When this function
|
||||
returns a list of two elements, it is interpreted as a list of
|
||||
a completion and a suffix string like in @code{annotation-function}.
|
||||
This function takes priority over @code{annotation-function}.
|
||||
|
||||
@item display-sort-function
|
||||
The value should be a function for sorting completions. The function
|
||||
|
|
|
|||
|
|
@ -1826,6 +1826,11 @@ starts, for example by providing a @code{:require} keyword.
|
|||
Use @code{:group @var{group}} in @var{keyword-args} to specify the
|
||||
custom group for the mode variable of the global minor mode.
|
||||
|
||||
By default, the buffer-local minor mode variable that says whether the
|
||||
mode is switched on or off is the same as the name of the mode itself.
|
||||
Use @code{:variable @var{variable}} if that's not the case--some minor
|
||||
modes use a different variable to store this state information.
|
||||
|
||||
Generally speaking, when you define a globalized minor mode, you should
|
||||
also define a non-globalized version, so that people can use (or
|
||||
disable) it in individual buffers. This also allows them to disable a
|
||||
|
|
|
|||
|
|
@ -2017,7 +2017,8 @@ describing the type of event.
|
|||
default sentinel function, which inserts a message in the process's
|
||||
buffer with the process name and the string describing the event.
|
||||
|
||||
The string describing the event looks like one of the following:
|
||||
The string describing the event looks like one of the following (but
|
||||
this is not an exhaustive list of event strings):
|
||||
|
||||
@itemize @bullet
|
||||
@item
|
||||
|
|
@ -2047,6 +2048,9 @@ core.
|
|||
@item
|
||||
@code{"open\n"}.
|
||||
|
||||
@item
|
||||
@code{"run\n"}.
|
||||
|
||||
@item
|
||||
@code{"connection broken by remote peer\n"}.
|
||||
@end itemize
|
||||
|
|
|
|||
|
|
@ -573,10 +573,10 @@ and by Font Lock mode during syntactic fontification (@pxref{Syntactic
|
|||
Font Lock}). It is called with two arguments, @var{start} and
|
||||
@var{end}, which are the starting and ending positions of the text on
|
||||
which it should act. It is allowed to call @code{syntax-ppss} on any
|
||||
position before @var{end}. However, it should not call
|
||||
@code{syntax-ppss-flush-cache}; so, it is not allowed to call
|
||||
@code{syntax-ppss} on some position and later modify the buffer at an
|
||||
earlier position.
|
||||
position before @var{end}, but if it calls @code{syntax-ppss} on some
|
||||
position and later modifies the buffer on some earlier position,
|
||||
then it is its responsibility to call @code{syntax-ppss-flush-cache}
|
||||
to flush the now obsolete info from the cache.
|
||||
|
||||
@strong{Caution:} When this variable is non-@code{nil}, Emacs removes
|
||||
@code{syntax-table} text properties arbitrarily and relies on
|
||||
|
|
|
|||
|
|
@ -2151,6 +2151,11 @@ And this form restricts the monitoring on D-Bus errors:
|
|||
@end lisp
|
||||
@end defun
|
||||
|
||||
@deffn Command dbus-monitor &optional bus
|
||||
This command invokes @code{dbus-register-monitor} interactively, and
|
||||
switches to the monitor buffer.
|
||||
@end deffn
|
||||
|
||||
|
||||
@node Index
|
||||
@unnumbered Index
|
||||
|
|
|
|||
|
|
@ -2792,9 +2792,10 @@ visiting a file will show its encrypted contents. However, it is
|
|||
highly discouraged to mix encrypted and not encrypted files in the
|
||||
same directory.
|
||||
|
||||
@deffn Command tramp-crypt-add-directory name
|
||||
If a remote directory shall not include encrypted files anymore, it
|
||||
must be indicated by this command.
|
||||
@deffn Command tramp-crypt-remove-directory name
|
||||
This command should be used to indicate that files in @code{name}
|
||||
should no longer be encrypted. Existing encrypted files and
|
||||
subdirectories will remain encrypted.
|
||||
@end deffn
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -66,8 +66,9 @@ the list at the end of this file.
|
|||
|
||||
** macOS
|
||||
|
||||
Mac OS X 10.6 or newer. PowerPC is not supported.
|
||||
For installation instructions see the file nextstep/INSTALL.
|
||||
Mac OS X 10.6 or newer. Both AArch64 (Arm) and x86-64 systems are
|
||||
supported, but PowerPC is not supported. For installation
|
||||
instructions see the file nextstep/INSTALL.
|
||||
|
||||
** Microsoft Windows
|
||||
|
||||
|
|
|
|||
106
etc/NEWS
106
etc/NEWS
|
|
@ -85,7 +85,7 @@ useful on systems such as FreeBSD which ships only with "etc/termcap".
|
|||
|
||||
* Changes in Emacs 28.1
|
||||
|
||||
** The new NonGNU ELPA archive is enabled by default alongside GNU ELPA
|
||||
** The new NonGNU ELPA archive is enabled by default alongside GNU ELPA.
|
||||
|
||||
** Minibuffer scrolling is now conservative by default.
|
||||
This is controlled by the new variable 'scroll-minibuffer-conservatively'.
|
||||
|
|
@ -221,10 +221,20 @@ It is not enabled by default.
|
|||
|
||||
+++
|
||||
** Modifiers now go outside angle brackets in pretty-printed key bindings.
|
||||
For example, <return> with Control and Meta modifiers is now shown as
|
||||
C-M-<return> instead of <C-M-return>. Either variant can be used as
|
||||
input; functions such as 'kbd' and 'read-kbd-macro' accept both styles
|
||||
as equivalent (they have done so for a long time).
|
||||
For example, 'RET' with Control and Meta modifiers is now shown as
|
||||
'C-M-<return>' instead of '<C-M-return>'. Either variant can be used
|
||||
as input; functions such as 'kbd' and 'read-kbd-macro' accept both
|
||||
styles as equivalent (they have done so for a long time).
|
||||
|
||||
+++
|
||||
** New user option 'lazy-highlight-no-delay-length'.
|
||||
Lazy highlighting of matches in Isearch now starts immediately if the
|
||||
search string is at least this long. 'lazy-highlight-initial-delay'
|
||||
still applies for shorter search strings, which avoids flicker in the
|
||||
search buffer due to too many matches being highlighted.
|
||||
|
||||
+++
|
||||
** 'revert-buffer' is now bound to 'C-x g' globally.
|
||||
|
||||
|
||||
* Editing Changes in Emacs 28.1
|
||||
|
|
@ -247,7 +257,7 @@ forms, but this command has now been changed to work more like
|
|||
When 'M-y' is typed not after a yank command, it activates the minibuffer
|
||||
where you can browse previous kills using the minibuffer history or
|
||||
completion. In Isearch, you can bind 'C-s M-y' to the command
|
||||
`isearch-yank-pop' that uses the minibuffer with completion on
|
||||
'isearch-yank-pop' that uses the minibuffer with completion on
|
||||
previous kills to read a string and append it to the search string.
|
||||
|
||||
---
|
||||
|
|
@ -331,9 +341,10 @@ It used to be enabled when Emacs is started in GUI mode but not when started
|
|||
in text mode. The cursor still only actually blinks in GUI frames.
|
||||
|
||||
** pcase
|
||||
|
||||
+++
|
||||
*** The `pred` pattern can now take the form (pred (not FUN)).
|
||||
This is like (pred (lambda (x) (not (FUN x)))) but results
|
||||
*** The 'pred' pattern can now take the form '(pred (not FUN))'.
|
||||
This is like '(pred (lambda (x) (not (FUN x))))' but results
|
||||
in better code.
|
||||
|
||||
+++
|
||||
|
|
@ -393,7 +404,7 @@ disabled entirely.
|
|||
** Windows
|
||||
|
||||
+++
|
||||
*** New 'display-buffer' function 'display-buffer-use-least-recent-window'
|
||||
*** New 'display-buffer' function 'display-buffer-use-least-recent-window'.
|
||||
This is like 'display-buffer-use-some-window', but won't reuse the
|
||||
current window, and when called repeatedly will try not to reuse a
|
||||
previously selected window.
|
||||
|
|
@ -726,7 +737,7 @@ not.
|
|||
|
||||
---
|
||||
*** Respect 'message-forward-ignored-headers' more.
|
||||
Previously, this variable would not be consulted if
|
||||
Previously, this user option would not be consulted if
|
||||
'message-forward-show-mml' was nil and forwarding as MIME.
|
||||
|
||||
+++
|
||||
|
|
@ -847,7 +858,7 @@ deprecated. Errors in the Inscript method were corrected.
|
|||
|
||||
---
|
||||
*** New input method 'cham'.
|
||||
There's also a Cham greeting in 'etc/HELLO'.
|
||||
There's also a Cham greeting in "etc/HELLO".
|
||||
|
||||
** Ispell
|
||||
|
||||
|
|
@ -948,6 +959,9 @@ command line under point (and any following output).
|
|||
|
||||
** Eshell
|
||||
|
||||
---
|
||||
*** 'eshell-hist-ignoredups' can now also be used to mimic "erasedups" in bash.
|
||||
|
||||
---
|
||||
*** Environment variable 'INSIDE_EMACS' is now copied to subprocesses.
|
||||
Its value equals the result of evaluating '(format "%s,eshell" emacs-version)'.
|
||||
|
|
@ -1382,13 +1396,13 @@ have been renamed to have "proper" public names and documented
|
|||
'xref-show-definitions-buffer-at-bottom').
|
||||
|
||||
*** New command 'xref-quit-and-pop-marker-stack' and a binding for it
|
||||
in Xref buffers ('M-,'). This combination is easy to press
|
||||
in "*xref*" buffers ('M-,'). This combination is easy to press
|
||||
semi-accidentally if the user wants to go back in the middle of
|
||||
choosing the exact definition to go to, and this should do TRT.
|
||||
|
||||
---
|
||||
*** New value 'project-relative' for 'xref-file-name-display'
|
||||
If chosen, file names in *xref* buffers will be displayed relative
|
||||
*** New value 'project-relative' for 'xref-file-name-display'.
|
||||
If chosen, file names in "*xref*" buffers will be displayed relative
|
||||
to the 'project-root' of the current project, when available.
|
||||
|
||||
** json.el
|
||||
|
|
@ -1411,9 +1425,9 @@ https://www.w3.org/TR/xml/#charsets). Now it rejects such strings.
|
|||
|
||||
---
|
||||
*** erc-services.el now supports NickServ passwords from auth-source.
|
||||
The 'erc-use-auth-source-for-nickserv-password' variable enables querying
|
||||
auth-source for NickServ passwords. To enable this, add the following
|
||||
to your init file:
|
||||
The 'erc-use-auth-source-for-nickserv-password' user option enables
|
||||
querying auth-source for NickServ passwords. To enable this, add the
|
||||
following to your init file:
|
||||
|
||||
(setq erc-prompt-for-nickserv-password nil
|
||||
erc-use-auth-source-for-nickserv-password t)
|
||||
|
|
@ -1578,18 +1592,18 @@ that makes it a valid button.
|
|||
'string-clean-whitespace', 'string-fill', 'string-limit',
|
||||
'string-lines', 'string-pad' and 'string-chop-newline'.
|
||||
|
||||
*** New macro `named-let` that provides Scheme's "named let" looping construct
|
||||
*** New macro 'named-let' that provides Scheme's "named let" looping construct.
|
||||
|
||||
** thingatpt
|
||||
|
||||
+++
|
||||
*** New variable 'thing-at-point-provider-alist'.
|
||||
This allows mode-specific alterations to how `thing-at-point' works.
|
||||
This allows mode-specific alterations to how 'thing-at-point' works.
|
||||
|
||||
** Miscellaneous
|
||||
|
||||
+++
|
||||
*** New command `C-x C-k Q' to force redisplay in keyboard macros.
|
||||
*** New command 'C-x C-k Q' to force redisplay in keyboard macros.
|
||||
|
||||
---
|
||||
*** New user option 'remember-diary-regexp'.
|
||||
|
|
@ -1603,8 +1617,8 @@ This function returns some statistics about the line lengths in a buffer.
|
|||
+++
|
||||
*** New variable 'inhibit-interaction' to make user prompts signal an error.
|
||||
If this is bound to something non-nil, functions like
|
||||
`read-from-minibuffer', `read-char' (and related) will signal an
|
||||
`inhibited-interaction' error.
|
||||
'read-from-minibuffer', 'read-char' (and related) will signal an
|
||||
'inhibited-interaction' error.
|
||||
|
||||
---
|
||||
*** 'process-attributes' now works under OpenBSD, too.
|
||||
|
|
@ -1875,14 +1889,12 @@ Otherwise, it will use 'xwidget-webkit-last-session'.
|
|||
|
||||
+++
|
||||
*** New user options to customize Flymake's mode-line.
|
||||
|
||||
The new customization variable 'flymake-mode-line-format' is a mix of
|
||||
strings and symbols like 'flymake-mode-line-title' ,
|
||||
'flymake-mode-line-exception' and 'flymake-mode-line-counters'. The
|
||||
new customization variable 'flymake-mode-line-counter-format' is a mix
|
||||
of strings and symbols like 'flymake-mode-line-error-counter',
|
||||
'flymake-mode-line-warning-counter' and
|
||||
'flymake-mode-line-note-counter'.
|
||||
The new user option 'flymake-mode-line-format' is a mix of strings and
|
||||
symbols like 'flymake-mode-line-title', 'flymake-mode-line-exception'
|
||||
and 'flymake-mode-line-counters'. The new user option
|
||||
'flymake-mode-line-counter-format' is a mix of strings and symbols
|
||||
like 'flymake-mode-line-error-counter',
|
||||
'flymake-mode-line-warning-counter' and 'flymake-mode-line-note-counter'.
|
||||
|
||||
** Flyspell mode
|
||||
|
||||
|
|
@ -1941,7 +1953,7 @@ type symbols. Both functions propagate D-Bus errors.
|
|||
messages, contain the error name of that message now.
|
||||
|
||||
+++
|
||||
*** D-Bus messages can be monitored with new function 'dbus-register-monitor'.
|
||||
*** D-Bus messages can be monitored with the new command 'dbus-monitor'.
|
||||
|
||||
+++
|
||||
*** D-Bus events have changed their internal structure.
|
||||
|
|
@ -2000,6 +2012,13 @@ first).
|
|||
|
||||
* Incompatible Editing Changes in Emacs 28.1
|
||||
|
||||
** In 'f90-mode', the backslash character ('\') no longer escapes.
|
||||
For about a decade, the backslash character has no longer had a
|
||||
special escape syntax in Fortran F90. To get the old behaviour back,
|
||||
say something like:
|
||||
|
||||
(modify-syntax-entry ?\\ "\\" f90-mode-syntax-table)
|
||||
|
||||
** In 'nroff-mode', 'center-line' is now bound to 'M-o M-s'.
|
||||
The original key binding was 'M-s', which interfered with I-search,
|
||||
since the latter uses 'M-s' as a prefix key of the search prefix map.
|
||||
|
|
@ -2010,6 +2029,9 @@ directory instead of the default directory.
|
|||
|
||||
* Incompatible Lisp Changes in Emacs 28.1
|
||||
|
||||
** 'completions-annotations' face is not used when the caller puts own face.
|
||||
This affects the suffix specified by completion 'annotation-function'.
|
||||
|
||||
** 'set-process-buffer' now updates the process mark.
|
||||
The mark will be set to point to the end of the new buffer.
|
||||
|
||||
|
|
@ -2098,8 +2120,9 @@ ledit.el, lmenu.el, lucid.el and old-whitespace.el.
|
|||
'completion-base-size', 'completion-common-substring',
|
||||
'crm-minibuffer-complete', 'crm-minibuffer-complete-and-exit',
|
||||
'crm-minibuffer-completion-help', 'custom-mode', 'custom-mode-hook',
|
||||
'define-mode-overload-implementation', 'detect-coding-with-priority',
|
||||
'dirtrack-debug', 'dirtrack-debug-toggle', 'dynamic-completion-table',
|
||||
'define-key-rebound-commands', 'define-mode-overload-implementation',
|
||||
'detect-coding-with-priority', 'dirtrack-debug',
|
||||
'dirtrack-debug-toggle', 'dynamic-completion-table',
|
||||
'easy-menu-precalculate-equivalent-keybindings',
|
||||
'epa-display-verify-result', 'epg-passphrase-callback-function',
|
||||
'eshell-report-bug', 'eval-next-after-load', 'exchange-dot-and-mark',
|
||||
|
|
@ -2154,17 +2177,22 @@ ledit.el, lmenu.el, lucid.el and old-whitespace.el.
|
|||
'vcursor-toggle-vcursor-map', 'w32-focus-frame', 'w32-select-font',
|
||||
'wisent-lex-make-token-table'.
|
||||
|
||||
** The 'when' argument of `make-obsolete` and related functions is mandatory.
|
||||
The use of those functions without a 'when' argument was marked
|
||||
obsolete back in Emacs-23.1. The affected functions are:
|
||||
make-obsolete, define-obsolete-function-alias, make-obsolete-variable,
|
||||
define-obsolete-variable-alias.
|
||||
** The WHEN argument of 'make-obsolete' and related functions is mandatory.
|
||||
The use of those functions without a WHEN argument was marked obsolete
|
||||
back in Emacs 23.1. The affected functions are: 'make-obsolete',
|
||||
'define-obsolete-function-alias', 'make-obsolete-variable',
|
||||
'define-obsolete-variable-alias'.
|
||||
|
||||
** The variable 'keyboard-type' is obsolete and not dynamically scoped any more
|
||||
** The variable 'keyboard-type' is obsolete and not dynamically scoped any more.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 28.1
|
||||
|
||||
---
|
||||
** New variable 'indent-line-ignored-functions'.
|
||||
This allows modes to cycle through a set of indentation functions
|
||||
appropriate for those modes.
|
||||
|
||||
** New function 'garbage-collect-maybe' to trigger GC early.
|
||||
|
||||
---
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -516,9 +516,8 @@ It is nil if the abbrev has already been unexpanded.")
|
|||
(defvar last-abbrev-location 0
|
||||
"The location of the start of the last abbrev expanded.")
|
||||
|
||||
;; (defvar local-abbrev-table fundamental-mode-abbrev-table
|
||||
;; (defvar-local local-abbrev-table fundamental-mode-abbrev-table
|
||||
;; "Local (mode-specific) abbrev table of current buffer.")
|
||||
;; (make-variable-buffer-local 'local-abbrev-table)
|
||||
|
||||
(defun clear-abbrev-table (table)
|
||||
"Undefine all abbrevs in abbrev table TABLE, leaving it empty."
|
||||
|
|
|
|||
|
|
@ -424,7 +424,7 @@ The possible settings for `align-region-separate' are:
|
|||
(backward-word 1)
|
||||
(looking-at
|
||||
"\\(goto\\|return\\|new\\|delete\\|throw\\)"))
|
||||
(if (and (boundp 'font-lock-mode) font-lock-mode)
|
||||
(if font-lock-mode
|
||||
(eq (get-text-property (point) 'face)
|
||||
'font-lock-comment-face)
|
||||
(eq (caar (c-guess-basic-syntax)) 'c)))))))
|
||||
|
|
@ -775,18 +775,14 @@ See the documentation for `align-rules-list' for more info."
|
|||
|
||||
;;; Internal Variables:
|
||||
|
||||
(defvar align-mode-rules-list nil
|
||||
(defvar-local align-mode-rules-list nil
|
||||
"Alignment rules specific to the current major mode.
|
||||
See the variable `align-rules-list' for more details.")
|
||||
|
||||
(make-variable-buffer-local 'align-mode-rules-list)
|
||||
|
||||
(defvar align-mode-exclude-rules-list nil
|
||||
(defvar-local align-mode-exclude-rules-list nil
|
||||
"Alignment exclusion rules specific to the current major mode.
|
||||
See the variable `align-exclude-rules-list' for more details.")
|
||||
|
||||
(make-variable-buffer-local 'align-mode-exclude-rules-list)
|
||||
|
||||
(defvar align-highlight-overlays nil
|
||||
"The current overlays highlighting the text matched by a rule.")
|
||||
|
||||
|
|
|
|||
|
|
@ -78,9 +78,8 @@
|
|||
;;; during file load, so the involved code must reside above that
|
||||
;;; definition in the file.
|
||||
;;;_ = allout-widgets-mode
|
||||
(defvar allout-widgets-mode nil
|
||||
(defvar-local allout-widgets-mode nil
|
||||
"Allout mode enhanced with graphical widgets.")
|
||||
(make-variable-buffer-local 'allout-widgets-mode)
|
||||
|
||||
;;;_ : USER CUSTOMIZATION VARIABLES and incidental functions:
|
||||
;;;_ > defgroup allout-widgets
|
||||
|
|
@ -243,14 +242,13 @@ decreases as obsolete widgets are garbage collected."
|
|||
:version "24.1"
|
||||
:type 'boolean
|
||||
:group 'allout-widgets-developer)
|
||||
(defvar allout-widgets-tally nil
|
||||
(defvar-local allout-widgets-tally nil
|
||||
"Hash-table of existing allout widgets, for debugging.
|
||||
|
||||
Table is maintained only if `allout-widgets-maintain-tally' is non-nil.
|
||||
|
||||
The table contents will be out of sync if any widgets are created
|
||||
or deleted while this variable is nil.")
|
||||
(make-variable-buffer-local 'allout-widgets-tally)
|
||||
(defvar allout-widgets-mode-inhibit) ; defined below
|
||||
;;;_ > allout-widgets-tally-string
|
||||
(defun allout-widgets-tally-string ()
|
||||
|
|
@ -295,7 +293,7 @@ to publicize it by making it a customization variable)."
|
|||
(message "%s" msg)
|
||||
msg))
|
||||
;;;_ = allout-widgets-mode-inhibit
|
||||
(defvar allout-widgets-mode-inhibit nil
|
||||
(defvar-local allout-widgets-mode-inhibit nil
|
||||
"Inhibit `allout-widgets-mode' from activating widgets.
|
||||
|
||||
This also inhibits automatic adjustment of widgets to track allout outline
|
||||
|
|
@ -310,15 +308,13 @@ buffers where this is set to enable and disable widget
|
|||
enhancements, directly.")
|
||||
;;;###autoload
|
||||
(put 'allout-widgets-mode-inhibit 'safe-local-variable 'booleanp)
|
||||
(make-variable-buffer-local 'allout-widgets-mode-inhibit)
|
||||
;;;_ = allout-inhibit-body-modification-hook
|
||||
(defvar allout-inhibit-body-modification-hook nil
|
||||
(defvar-local allout-inhibit-body-modification-hook nil
|
||||
"Override de-escaping of text-prefixes in item bodies during specific changes.
|
||||
|
||||
This is used by `allout-buffer-modification-handler' to signal such changes
|
||||
to `allout-body-modification-handler', and is always reset by
|
||||
`allout-post-command-business'.")
|
||||
(make-variable-buffer-local 'allout-inhibit-body-modification-hook)
|
||||
;;;_ = allout-widgets-icons-cache
|
||||
(defvar allout-widgets-icons-cache nil
|
||||
"Cache allout icon images, as an association list.
|
||||
|
|
@ -358,7 +354,7 @@ See \\[describe-mode] for many more options."
|
|||
|
||||
The structure includes the guides lines, bullet, and bullet cue.")
|
||||
;;;_ = allout-widgets-changes-record
|
||||
(defvar allout-widgets-changes-record nil
|
||||
(defvar-local allout-widgets-changes-record nil
|
||||
"Record outline changes for processing by post-command hook.
|
||||
|
||||
Entries on the list are lists whose first element is a symbol indicating
|
||||
|
|
@ -369,14 +365,12 @@ type. For example:
|
|||
|
||||
The changes are recorded in reverse order, with new values pushed
|
||||
onto the front.")
|
||||
(make-variable-buffer-local 'allout-widgets-changes-record)
|
||||
;;;_ = allout-widgets-undo-exposure-record
|
||||
(defvar allout-widgets-undo-exposure-record nil
|
||||
(defvar-local allout-widgets-undo-exposure-record nil
|
||||
"Record outline undo traces for processing by post-command hook.
|
||||
|
||||
The changes are recorded in reverse order, with new values pushed
|
||||
onto the front.")
|
||||
(make-variable-buffer-local 'allout-widgets-undo-exposure-record)
|
||||
;;;_ = allout-widgets-last-hook-error
|
||||
(defvar allout-widgets-last-hook-error nil
|
||||
"String holding last error string, for debugging purposes.")
|
||||
|
|
@ -393,13 +387,12 @@ onto the front.")
|
|||
"Maintained true during `allout-widgets-exposure-undo-processor'")
|
||||
;;;_ , Widget-specific outline text format
|
||||
;;;_ = allout-escaped-prefix-regexp
|
||||
(defvar allout-escaped-prefix-regexp ""
|
||||
(defvar-local allout-escaped-prefix-regexp ""
|
||||
"Regular expression for body text that would look like an item prefix if
|
||||
not altered with an escape sequence.")
|
||||
(make-variable-buffer-local 'allout-escaped-prefix-regexp)
|
||||
;;;_ , Widget element formatting
|
||||
;;;_ = allout-item-icon-keymap
|
||||
(defvar allout-item-icon-keymap
|
||||
(defvar-local allout-item-icon-keymap
|
||||
(let ((km (make-sparse-keymap))
|
||||
(as-parent (if (current-local-map)
|
||||
(make-composed-keymap (current-local-map)
|
||||
|
|
@ -420,9 +413,8 @@ not altered with an escape sequence.")
|
|||
|
||||
km)
|
||||
"General tree-node key bindings.")
|
||||
(make-variable-buffer-local 'allout-item-icon-keymap)
|
||||
;;;_ = allout-item-body-keymap
|
||||
(defvar allout-item-body-keymap
|
||||
(defvar-local allout-item-body-keymap
|
||||
(let ((km (make-sparse-keymap))
|
||||
(as-parent (if (current-local-map)
|
||||
(make-composed-keymap (current-local-map)
|
||||
|
|
@ -432,17 +424,15 @@ not altered with an escape sequence.")
|
|||
(set-keymap-parent km as-parent)
|
||||
km)
|
||||
"General key bindings for the text content of outline items.")
|
||||
(make-variable-buffer-local 'allout-item-body-keymap)
|
||||
;;;_ = allout-body-span-category
|
||||
(defvar allout-body-span-category nil
|
||||
"Symbol carrying allout body-text overlay properties.")
|
||||
;;;_ = allout-cue-span-keymap
|
||||
(defvar allout-cue-span-keymap
|
||||
(defvar-local allout-cue-span-keymap
|
||||
(let ((km (make-sparse-keymap)))
|
||||
(set-keymap-parent km allout-item-icon-keymap)
|
||||
km)
|
||||
"Keymap used in the item cue area - the space between the icon and headline.")
|
||||
(make-variable-buffer-local 'allout-cue-span-keymap)
|
||||
;;;_ = allout-escapes-category
|
||||
(defvar allout-escapes-category nil
|
||||
"Symbol for category of text property used to hide escapes of prefix-like
|
||||
|
|
@ -477,7 +467,7 @@ including things like:
|
|||
(defvar allout-trailing-category nil
|
||||
"Symbol carrying common properties of an overlay's trailing newline.")
|
||||
;;;_ , Developer
|
||||
(defvar allout-widgets-last-decoration-timing nil
|
||||
(defvar-local allout-widgets-last-decoration-timing nil
|
||||
"Timing details for the last cooperative decoration action.
|
||||
|
||||
This is maintained when `allout-widgets-time-decoration-activity' is set.
|
||||
|
|
@ -488,7 +478,6 @@ The value is a list containing two elements:
|
|||
|
||||
When active, the value is revised each time automatic decoration activity
|
||||
happens in the buffer.")
|
||||
(make-variable-buffer-local 'allout-widgets-last-decoration-timing)
|
||||
;;;_ . mode hookup
|
||||
;;;_ > define-minor-mode allout-widgets-mode (arg)
|
||||
;;;###autoload
|
||||
|
|
@ -693,12 +682,11 @@ outline hot-spot navigation (see `allout-mode')."
|
|||
(allout-get-or-create-item-widget))))))
|
||||
;;;_ . settings context
|
||||
;;;_ = allout-container-item
|
||||
(defvar allout-container-item-widget nil
|
||||
(defvar-local allout-container-item-widget nil
|
||||
"A widget for the current outline's overarching container as an item.
|
||||
|
||||
The item has settings (of the file/connection) and maybe a body, but no
|
||||
icon/bullet.")
|
||||
(make-variable-buffer-local 'allout-container-item-widget)
|
||||
;;;_ . Hooks and hook helpers
|
||||
;;;_ , major command-loop business:
|
||||
;;;_ > allout-widgets-pre-command-business (&optional recursing)
|
||||
|
|
@ -2243,7 +2231,7 @@ interactive command."
|
|||
|
||||
We use a caching strategy, so the caller doesn't need to do so."
|
||||
(let* ((types allout-widgets-icon-types)
|
||||
(use-dir (if (equal (allout-frame-property nil 'background-mode)
|
||||
(use-dir (if (equal (frame-parameter nil 'background-mode)
|
||||
'light)
|
||||
allout-widgets-icons-light-subdir
|
||||
allout-widgets-icons-dark-subdir))
|
||||
|
|
@ -2274,13 +2262,6 @@ We use a caching strategy, so the caller doesn't need to do so."
|
|||
"Return seconds between START/END time values."
|
||||
(let ((elapsed (time-subtract end start)))
|
||||
(float-time elapsed)))
|
||||
;;;_ > allout-frame-property (frame property)
|
||||
(defalias 'allout-frame-property
|
||||
(cond ((fboundp 'frame-parameter)
|
||||
'frame-parameter)
|
||||
((fboundp 'frame-property)
|
||||
'frame-property)
|
||||
(t nil)))
|
||||
;;;_ > allout-find-image (specs)
|
||||
(define-obsolete-function-alias 'allout-find-image #'find-image "28.1")
|
||||
;;;_ > allout-widgets-copy-list (list)
|
||||
|
|
@ -2307,6 +2288,8 @@ The elements of LIST are not copied, just the list structure itself."
|
|||
(overlays-in start end)))))
|
||||
(length button-overlays)))
|
||||
|
||||
(define-obsolete-function-alias 'allout-frame-property #'frame-parameter "28.1")
|
||||
|
||||
;;;_ : provide
|
||||
(provide 'allout-widgets)
|
||||
|
||||
|
|
|
|||
|
|
@ -830,9 +830,8 @@ such topics are encrypted.)"
|
|||
|
||||
The value of `buffer-saved-size' at the time of decryption is used,
|
||||
for restoring when all encryptions are established.")
|
||||
(defvar allout-just-did-undo nil
|
||||
(defvar-local allout-just-did-undo nil
|
||||
"True just after undo commands, until allout-post-command-business.")
|
||||
(make-variable-buffer-local 'allout-just-did-undo)
|
||||
|
||||
;;;_ + Developer
|
||||
;;;_ = allout-developer group
|
||||
|
|
@ -874,10 +873,10 @@ For details, see `allout-toggle-current-subtree-encryption's docstring."
|
|||
msg))
|
||||
;;;_ : Mode activation (defined here because it's referenced early)
|
||||
;;;_ = allout-mode
|
||||
(defvar allout-mode nil "Allout outline mode minor-mode flag.")
|
||||
(make-variable-buffer-local 'allout-mode)
|
||||
(defvar-local allout-mode nil
|
||||
"Allout outline mode minor-mode flag.")
|
||||
;;;_ = allout-layout nil
|
||||
(defvar allout-layout nil ; LEAVE GLOBAL VALUE NIL -- see docstring.
|
||||
(defvar-local allout-layout nil ; LEAVE GLOBAL VALUE NIL -- see docstring.
|
||||
"Buffer-specific setting for allout layout.
|
||||
|
||||
In buffers where this is non-nil (and if `allout-auto-activation'
|
||||
|
|
@ -903,34 +902,30 @@ followed by the equivalent of `(allout-expose-topic 0 : -1 -1 0)'.
|
|||
`allout-default-layout' describes the specification format.
|
||||
`allout-layout' can additionally have the value t, in which
|
||||
case the value of `allout-default-layout' is used.")
|
||||
(make-variable-buffer-local 'allout-layout)
|
||||
;;;###autoload
|
||||
(put 'allout-layout 'safe-local-variable
|
||||
(lambda (x) (or (numberp x) (listp x) (memq x '(: * + -)))))
|
||||
|
||||
;;;_ : Topic header format
|
||||
;;;_ = allout-regexp
|
||||
(defvar allout-regexp ""
|
||||
(defvar-local allout-regexp ""
|
||||
"Regular expression to match the beginning of a heading line.
|
||||
|
||||
Any line whose beginning matches this regexp is considered a
|
||||
heading. This var is set according to the user configuration vars
|
||||
by `allout-set-regexp'.")
|
||||
(make-variable-buffer-local 'allout-regexp)
|
||||
;;;_ = allout-bullets-string
|
||||
(defvar allout-bullets-string ""
|
||||
(defvar-local allout-bullets-string ""
|
||||
"A string dictating the valid set of outline topic bullets.
|
||||
|
||||
This var should *not* be set by the user -- it is set by `allout-set-regexp',
|
||||
and is produced from the elements of `allout-plain-bullets-string'
|
||||
and `allout-distinctive-bullets-string'.")
|
||||
(make-variable-buffer-local 'allout-bullets-string)
|
||||
;;;_ = allout-bullets-string-len
|
||||
(defvar allout-bullets-string-len 0
|
||||
(defvar-local allout-bullets-string-len 0
|
||||
"Length of current buffers' `allout-plain-bullets-string'.")
|
||||
(make-variable-buffer-local 'allout-bullets-string-len)
|
||||
;;;_ = allout-depth-specific-regexp
|
||||
(defvar allout-depth-specific-regexp ""
|
||||
(defvar-local allout-depth-specific-regexp ""
|
||||
"Regular expression to match a heading line prefix for a particular depth.
|
||||
|
||||
This expression is used to search for depth-specific topic
|
||||
|
|
@ -941,34 +936,28 @@ This var is set according to the user configuration vars by
|
|||
`allout-set-regexp'. It is prepared with format strings for two
|
||||
decimal numbers, which should each be one less than the depth of the
|
||||
topic prefix to be matched.")
|
||||
(make-variable-buffer-local 'allout-depth-specific-regexp)
|
||||
;;;_ = allout-depth-one-regexp
|
||||
(defvar allout-depth-one-regexp ""
|
||||
(defvar-local allout-depth-one-regexp ""
|
||||
"Regular expression to match a heading line prefix for depth one.
|
||||
|
||||
This var is set according to the user configuration vars by
|
||||
`allout-set-regexp'. It is prepared with format strings for two
|
||||
decimal numbers, which should each be one less than the depth of the
|
||||
topic prefix to be matched.")
|
||||
(make-variable-buffer-local 'allout-depth-one-regexp)
|
||||
;;;_ = allout-line-boundary-regexp
|
||||
(defvar allout-line-boundary-regexp ()
|
||||
(defvar-local allout-line-boundary-regexp ()
|
||||
"`allout-regexp' prepended with a newline for the search target.
|
||||
|
||||
This is properly set by `allout-set-regexp'.")
|
||||
(make-variable-buffer-local 'allout-line-boundary-regexp)
|
||||
;;;_ = allout-bob-regexp
|
||||
(defvar allout-bob-regexp ()
|
||||
(defvar-local allout-bob-regexp ()
|
||||
"Like `allout-line-boundary-regexp', for headers at beginning of buffer.")
|
||||
(make-variable-buffer-local 'allout-bob-regexp)
|
||||
;;;_ = allout-header-subtraction
|
||||
(defvar allout-header-subtraction (1- (length allout-header-prefix))
|
||||
(defvar-local allout-header-subtraction (1- (length allout-header-prefix))
|
||||
"Allout-header prefix length to subtract when computing topic depth.")
|
||||
(make-variable-buffer-local 'allout-header-subtraction)
|
||||
;;;_ = allout-plain-bullets-string-len
|
||||
(defvar allout-plain-bullets-string-len (length allout-plain-bullets-string)
|
||||
(defvar-local allout-plain-bullets-string-len (length allout-plain-bullets-string)
|
||||
"Length of `allout-plain-bullets-string', updated by `allout-set-regexp'.")
|
||||
(make-variable-buffer-local 'allout-plain-bullets-string-len)
|
||||
|
||||
;;;_ = allout-doublecheck-at-and-shallower
|
||||
(defconst allout-doublecheck-at-and-shallower 3
|
||||
|
|
@ -1279,11 +1268,10 @@ Also refresh various data structures that hinge on the regexp."
|
|||
["Set New Exposure" allout-expose-topic t])))
|
||||
;;;_ : Allout Modal-Variables Utilities
|
||||
;;;_ = allout-mode-prior-settings
|
||||
(defvar allout-mode-prior-settings nil
|
||||
(defvar-local allout-mode-prior-settings nil
|
||||
"Internal `allout-mode' use; settings to be resumed on mode deactivation.
|
||||
|
||||
See `allout-add-resumptions' and `allout-do-resumptions'.")
|
||||
(make-variable-buffer-local 'allout-mode-prior-settings)
|
||||
;;;_ > allout-add-resumptions (&rest pairs)
|
||||
(defun allout-add-resumptions (&rest pairs)
|
||||
"Set name/value PAIRS.
|
||||
|
|
@ -1466,16 +1454,15 @@ that was affected by the undo.."
|
|||
:version "24.3")
|
||||
|
||||
;;;_ = allout-outside-normal-auto-fill-function
|
||||
(defvar allout-outside-normal-auto-fill-function nil
|
||||
(defvar-local allout-outside-normal-auto-fill-function nil
|
||||
"Value of `normal-auto-fill-function' outside of allout mode.
|
||||
|
||||
Used by `allout-auto-fill' to do the mandated `normal-auto-fill-function'
|
||||
wrapped within allout's automatic `fill-prefix' setting.")
|
||||
(make-variable-buffer-local 'allout-outside-normal-auto-fill-function)
|
||||
;;;_ = prevent redundant activation by desktop mode:
|
||||
(add-to-list 'desktop-minor-mode-handlers '(allout-mode . nil))
|
||||
;;;_ = allout-after-save-decrypt
|
||||
(defvar allout-after-save-decrypt nil
|
||||
(defvar-local allout-after-save-decrypt nil
|
||||
"Internal variable, is nil or has the value of two points:
|
||||
|
||||
- the location of a topic to be decrypted after saving is done
|
||||
|
|
@ -1483,9 +1470,8 @@ wrapped within allout's automatic `fill-prefix' setting.")
|
|||
|
||||
This is used to decrypt the topic that was currently being edited, if it
|
||||
was encrypted automatically as part of a file write or autosave.")
|
||||
(make-variable-buffer-local 'allout-after-save-decrypt)
|
||||
;;;_ = allout-encryption-plaintext-sanitization-regexps
|
||||
(defvar allout-encryption-plaintext-sanitization-regexps nil
|
||||
(defvar-local allout-encryption-plaintext-sanitization-regexps nil
|
||||
"List of regexps whose matches are removed from plaintext before encryption.
|
||||
|
||||
This is for the sake of removing artifacts, like escapes, that are added on
|
||||
|
|
@ -1498,9 +1484,8 @@ Each value can be a regexp or a list with a regexp followed by a
|
|||
substitution string. If it's just a regexp, all its matches are removed
|
||||
before the text is encrypted. If it's a regexp and a substitution, the
|
||||
substitution is used against the regexp matches, a la `replace-match'.")
|
||||
(make-variable-buffer-local 'allout-encryption-plaintext-sanitization-regexps)
|
||||
;;;_ = allout-encryption-ciphertext-rejection-regexps
|
||||
(defvar allout-encryption-ciphertext-rejection-regexps nil
|
||||
(defvar-local allout-encryption-ciphertext-rejection-regexps nil
|
||||
"Variable for regexps matching plaintext to remove before encryption.
|
||||
|
||||
This is used to detect strings in encryption results that would
|
||||
|
|
@ -1513,13 +1498,11 @@ Encryptions that result in matches will be retried, up to
|
|||
`allout-encryption-ciphertext-rejection-ceiling' times, after which
|
||||
an error is raised.")
|
||||
|
||||
(make-variable-buffer-local 'allout-encryption-ciphertext-rejection-regexps)
|
||||
;;;_ = allout-encryption-ciphertext-rejection-ceiling
|
||||
(defvar allout-encryption-ciphertext-rejection-ceiling 5
|
||||
(defvar-local allout-encryption-ciphertext-rejection-ceiling 5
|
||||
"Limit on number of times encryption ciphertext is rejected.
|
||||
|
||||
See `allout-encryption-ciphertext-rejection-regexps' for rejection reasons.")
|
||||
(make-variable-buffer-local 'allout-encryption-ciphertext-rejection-ceiling)
|
||||
;;;_ > allout-mode-p ()
|
||||
;; Must define this macro above any uses, or byte compilation will lack
|
||||
;; proper def, if file isn't loaded -- eg, during emacs build!
|
||||
|
|
@ -1607,10 +1590,9 @@ non-nil in a lasting way.")
|
|||
|
||||
;;;_ #2 Mode environment and activation
|
||||
;;;_ = allout-explicitly-deactivated
|
||||
(defvar allout-explicitly-deactivated nil
|
||||
(defvar-local allout-explicitly-deactivated nil
|
||||
"If t, `allout-mode's last deactivation was deliberate.
|
||||
So `allout-post-command-business' should not reactivate it...")
|
||||
(make-variable-buffer-local 'allout-explicitly-deactivated)
|
||||
;;;_ > allout-setup-menubar ()
|
||||
(defun allout-setup-menubar ()
|
||||
"Populate the current buffer's menubar with `allout-mode' stuff."
|
||||
|
|
@ -2119,21 +2101,17 @@ function can also be used as an `isearch-mode-end-hook'."
|
|||
;; for just-established data. This optimization can provide
|
||||
;; significant speed improvement, but it must be employed carefully.
|
||||
;;;_ = allout-recent-prefix-beginning
|
||||
(defvar allout-recent-prefix-beginning 0
|
||||
(defvar-local allout-recent-prefix-beginning 0
|
||||
"Buffer point of the start of the last topic prefix encountered.")
|
||||
(make-variable-buffer-local 'allout-recent-prefix-beginning)
|
||||
;;;_ = allout-recent-prefix-end
|
||||
(defvar allout-recent-prefix-end 0
|
||||
(defvar-local allout-recent-prefix-end 0
|
||||
"Buffer point of the end of the last topic prefix encountered.")
|
||||
(make-variable-buffer-local 'allout-recent-prefix-end)
|
||||
;;;_ = allout-recent-depth
|
||||
(defvar allout-recent-depth 0
|
||||
(defvar-local allout-recent-depth 0
|
||||
"Depth of the last topic prefix encountered.")
|
||||
(make-variable-buffer-local 'allout-recent-depth)
|
||||
;;;_ = allout-recent-end-of-subtree
|
||||
(defvar allout-recent-end-of-subtree 0
|
||||
(defvar-local allout-recent-end-of-subtree 0
|
||||
"Buffer point last returned by `allout-end-of-current-subtree'.")
|
||||
(make-variable-buffer-local 'allout-recent-end-of-subtree)
|
||||
;;;_ > allout-prefix-data ()
|
||||
(defsubst allout-prefix-data ()
|
||||
"Register allout-prefix state data.
|
||||
|
|
@ -3213,7 +3191,7 @@ Returns resulting position, else nil if none found."
|
|||
|
||||
;;;_ - Fundamental
|
||||
;;;_ = allout-post-goto-bullet
|
||||
(defvar allout-post-goto-bullet nil
|
||||
(defvar-local allout-post-goto-bullet nil
|
||||
"Outline internal var, for `allout-pre-command-business' hot-spot operation.
|
||||
|
||||
When set, tells post-processing to reposition on topic bullet, and
|
||||
|
|
@ -3221,18 +3199,15 @@ then unset it. Set by `allout-pre-command-business' when implementing
|
|||
hot-spot operation, where literal characters typed over a topic bullet
|
||||
are mapped to the command of the corresponding control-key on the
|
||||
`allout-mode-map-value'.")
|
||||
(make-variable-buffer-local 'allout-post-goto-bullet)
|
||||
;;;_ = allout-command-counter
|
||||
(defvar allout-command-counter 0
|
||||
(defvar-local allout-command-counter 0
|
||||
"Counter that monotonically increases in allout-mode buffers.
|
||||
|
||||
Set by `allout-pre-command-business', to support allout addons in
|
||||
coordinating with allout activity.")
|
||||
(make-variable-buffer-local 'allout-command-counter)
|
||||
;;;_ = allout-this-command-hid-text
|
||||
(defvar allout-this-command-hid-text nil
|
||||
(defvar-local allout-this-command-hid-text nil
|
||||
"True if the most recent allout-mode command hid any text.")
|
||||
(make-variable-buffer-local 'allout-this-command-hid-text)
|
||||
;;;_ > allout-post-command-business ()
|
||||
(defun allout-post-command-business ()
|
||||
"Outline `post-command-hook' function.
|
||||
|
|
|
|||
|
|
@ -199,7 +199,7 @@ mouse-3: Set coding system"
|
|||
(symbol-name buffer-file-coding-system))
|
||||
"Buffer coding system: none specified")))
|
||||
|
||||
(defvar mode-line-mule-info
|
||||
(defvar-local mode-line-mule-info
|
||||
`(""
|
||||
(current-input-method
|
||||
(:propertize ("" current-input-method-title)
|
||||
|
|
@ -225,7 +225,6 @@ mnemonics of the following coding systems:
|
|||
coding system for terminal output (on a text terminal)")
|
||||
;;;###autoload
|
||||
(put 'mode-line-mule-info 'risky-local-variable t)
|
||||
(make-variable-buffer-local 'mode-line-mule-info)
|
||||
|
||||
(defvar mode-line-client
|
||||
`(""
|
||||
|
|
@ -247,7 +246,7 @@ mnemonics of the following coding systems:
|
|||
(format "Buffer is %smodified\nmouse-1: Toggle modification state"
|
||||
(if (buffer-modified-p (window-buffer window)) "" "not ")))
|
||||
|
||||
(defvar mode-line-modified
|
||||
(defvar-local mode-line-modified
|
||||
(list (propertize
|
||||
"%1*"
|
||||
'help-echo 'mode-line-read-only-help-echo
|
||||
|
|
@ -264,9 +263,8 @@ mnemonics of the following coding systems:
|
|||
"Mode line construct for displaying whether current buffer is modified.")
|
||||
;;;###autoload
|
||||
(put 'mode-line-modified 'risky-local-variable t)
|
||||
(make-variable-buffer-local 'mode-line-modified)
|
||||
|
||||
(defvar mode-line-remote
|
||||
(defvar-local mode-line-remote
|
||||
(list (propertize
|
||||
"%1@"
|
||||
'mouse-face 'mode-line-highlight
|
||||
|
|
@ -283,7 +281,6 @@ mnemonics of the following coding systems:
|
|||
"Mode line construct to indicate a remote buffer.")
|
||||
;;;###autoload
|
||||
(put 'mode-line-remote 'risky-local-variable t)
|
||||
(make-variable-buffer-local 'mode-line-remote)
|
||||
|
||||
;; MSDOS frames have window-system, but want the Fn identification.
|
||||
(defun mode-line-frame-control ()
|
||||
|
|
@ -301,12 +298,11 @@ Value is used for `mode-line-frame-identification', which see."
|
|||
;;;###autoload
|
||||
(put 'mode-line-frame-identification 'risky-local-variable t)
|
||||
|
||||
(defvar mode-line-process nil
|
||||
(defvar-local mode-line-process nil
|
||||
"Mode line construct for displaying info on process status.
|
||||
Normally nil in most modes, since there is no process to display.")
|
||||
;;;###autoload
|
||||
(put 'mode-line-process 'risky-local-variable t)
|
||||
(make-variable-buffer-local 'mode-line-process)
|
||||
|
||||
(defun bindings--define-key (map key item)
|
||||
"Define KEY in keymap MAP according to ITEM from a menu.
|
||||
|
|
@ -543,7 +539,7 @@ mouse-1: Previous buffer\nmouse-3: Next buffer")
|
|||
'mouse-face 'mode-line-highlight
|
||||
'local-map mode-line-buffer-identification-keymap)))
|
||||
|
||||
(defvar mode-line-buffer-identification
|
||||
(defvar-local mode-line-buffer-identification
|
||||
(propertized-buffer-identification "%12b")
|
||||
"Mode line construct for identifying the buffer being displayed.
|
||||
Its default value is (\"%12b\") with some text properties added.
|
||||
|
|
@ -551,7 +547,6 @@ Major modes that edit things other than ordinary files may change this
|
|||
\(e.g. Info, Dired,...)")
|
||||
;;;###autoload
|
||||
(put 'mode-line-buffer-identification 'risky-local-variable t)
|
||||
(make-variable-buffer-local 'mode-line-buffer-identification)
|
||||
|
||||
(defvar mode-line-misc-info
|
||||
'((global-mode-string ("" global-mode-string " ")))
|
||||
|
|
@ -1418,6 +1413,8 @@ if `inhibit-field-text-motion' is non-nil."
|
|||
|
||||
(define-key ctl-x-map "z" 'repeat)
|
||||
|
||||
(define-key ctl-x-map "g" #'revert-buffer)
|
||||
|
||||
(define-key esc-map "\C-l" 'reposition-window)
|
||||
|
||||
(define-key ctl-x-4-map "a" 'add-change-log-entry-other-window)
|
||||
|
|
|
|||
|
|
@ -271,13 +271,11 @@ defaults to `bookmark-default-file' and MODTIME is its modification time.")
|
|||
(defvar bookmark-file-coding-system nil
|
||||
"The coding-system of the last loaded or saved bookmark file.")
|
||||
|
||||
(defvar bookmark-current-bookmark nil
|
||||
(defvar-local bookmark-current-bookmark nil
|
||||
"Name of bookmark most recently used in the current file.
|
||||
It is buffer local, used to make moving a bookmark forward
|
||||
through a file easier.")
|
||||
|
||||
(make-variable-buffer-local 'bookmark-current-bookmark)
|
||||
|
||||
|
||||
(defvar bookmark-alist-modification-count 0
|
||||
"Number of modifications to bookmark list since it was last saved.")
|
||||
|
|
@ -903,13 +901,11 @@ Does not affect the kill ring."
|
|||
(when (and newline-too (= (following-char) ?\n))
|
||||
(delete-char 1))))
|
||||
|
||||
(defvar bookmark-annotation-name nil
|
||||
(defvar-local bookmark-annotation-name nil
|
||||
"Name of bookmark under edit in `bookmark-edit-annotation-mode'.")
|
||||
(make-variable-buffer-local 'bookmark-annotation-name)
|
||||
|
||||
(defvar bookmark--annotation-from-bookmark-list nil
|
||||
(defvar-local bookmark--annotation-from-bookmark-list nil
|
||||
"If non-nil, `bookmark-edit-annotation-mode' should return to bookmark list.")
|
||||
(make-variable-buffer-local 'bookmark--annotation-from-bookmark-list)
|
||||
|
||||
(defun bookmark-default-annotation-text (bookmark-name)
|
||||
"Return default annotation text for BOOKMARK-NAME.
|
||||
|
|
|
|||
|
|
@ -111,11 +111,10 @@ as it is by default."
|
|||
:group 'Buffer-menu
|
||||
:version "22.1")
|
||||
|
||||
(defvar Buffer-menu-files-only nil
|
||||
(defvar-local Buffer-menu-files-only nil
|
||||
"Non-nil if the current Buffer Menu lists only file buffers.
|
||||
This is set by the prefix argument to `buffer-menu' and related
|
||||
commands.")
|
||||
(make-variable-buffer-local 'Buffer-menu-files-only)
|
||||
|
||||
(defvar Buffer-menu-mode-map
|
||||
(let ((map (make-sparse-keymap))
|
||||
|
|
|
|||
|
|
@ -46,10 +46,8 @@
|
|||
(defvar calc-embedded-modes nil)
|
||||
(defvar calc-embedded-globals nil)
|
||||
(defvar calc-embedded-active nil)
|
||||
(defvar calc-embedded-all-active nil)
|
||||
(make-variable-buffer-local 'calc-embedded-all-active)
|
||||
(defvar calc-embedded-some-active nil)
|
||||
(make-variable-buffer-local 'calc-embedded-some-active)
|
||||
(defvar-local calc-embedded-all-active nil)
|
||||
(defvar-local calc-embedded-some-active nil)
|
||||
|
||||
;; The following variables are customizable and defined in calc.el.
|
||||
(defvar calc-embedded-announce-formula)
|
||||
|
|
|
|||
|
|
@ -140,22 +140,19 @@ specified by `ede-project-directories'."
|
|||
(defvar ede-projects nil
|
||||
"A list of all active projects currently loaded in Emacs.")
|
||||
|
||||
(defvar ede-object-root-project nil
|
||||
(defvar-local ede-object-root-project nil
|
||||
"The current buffer's current root project.
|
||||
If a file is under a project, this specifies the project that is at
|
||||
the root of a project tree.")
|
||||
(make-variable-buffer-local 'ede-object-root-project)
|
||||
|
||||
(defvar ede-object-project nil
|
||||
(defvar-local ede-object-project nil
|
||||
"The current buffer's current project at that level.
|
||||
If a file is under a project, this specifies the project that contains the
|
||||
current target.")
|
||||
(make-variable-buffer-local 'ede-object-project)
|
||||
|
||||
(defvar ede-object nil
|
||||
(defvar-local ede-object nil
|
||||
"The current buffer's target object.
|
||||
This object's class determines how to compile and debug from a buffer.")
|
||||
(make-variable-buffer-local 'ede-object)
|
||||
|
||||
(defvar ede-selected-object nil
|
||||
"The currently user-selected project or target.
|
||||
|
|
|
|||
|
|
@ -170,11 +170,10 @@ definition."
|
|||
|
||||
;;; Core bindings API
|
||||
;;
|
||||
(defvar mode-local-symbol-table nil
|
||||
(defvar-local mode-local-symbol-table nil
|
||||
"Buffer local mode bindings.
|
||||
These symbols provide a hook for a `major-mode' to specify specific
|
||||
behaviors. Use the function `mode-local-bind' to define new bindings.")
|
||||
(make-variable-buffer-local 'mode-local-symbol-table)
|
||||
|
||||
(defvar mode-local-active-mode nil
|
||||
"Major mode in which bindings are active.")
|
||||
|
|
|
|||
|
|
@ -77,13 +77,12 @@ introduced."
|
|||
|
||||
;;; Variables and Configuration
|
||||
;;
|
||||
(defvar semantic--parse-table nil
|
||||
(defvar-local semantic--parse-table nil
|
||||
"Variable that defines how to parse top level items in a buffer.
|
||||
This variable is for internal use only, and its content depends on the
|
||||
external parser used.")
|
||||
(make-variable-buffer-local 'semantic--parse-table)
|
||||
|
||||
(defvar semantic-symbol->name-assoc-list
|
||||
(defvar-local semantic-symbol->name-assoc-list
|
||||
'((type . "Types")
|
||||
(variable . "Variables")
|
||||
(function . "Functions")
|
||||
|
|
@ -95,22 +94,19 @@ It is sometimes useful for a language to use a different string
|
|||
in place of the default, even though that language will still
|
||||
return a symbol. For example, Java return's includes, but the
|
||||
string can be replaced with `Imports'.")
|
||||
(make-variable-buffer-local 'semantic-symbol->name-assoc-list)
|
||||
|
||||
(defvar semantic-symbol->name-assoc-list-for-type-parts nil
|
||||
(defvar-local semantic-symbol->name-assoc-list-for-type-parts nil
|
||||
"Like `semantic-symbol->name-assoc-list' for type parts.
|
||||
Some tags that have children (see `semantic-tag-children-compatibility')
|
||||
will want to define the names of classes of tags differently than at
|
||||
the top level. For example, in C++, a Function may be called a
|
||||
Method. In addition, there may be new types of tags that exist only
|
||||
in classes, such as protection labels.")
|
||||
(make-variable-buffer-local 'semantic-symbol->name-assoc-list-for-type-parts)
|
||||
|
||||
(defvar semantic-case-fold nil
|
||||
(defvar-local semantic-case-fold nil
|
||||
"Value for `case-fold-search' when parsing.")
|
||||
(make-variable-buffer-local 'semantic-case-fold)
|
||||
|
||||
(defvar semantic--buffer-cache nil
|
||||
(defvar-local semantic--buffer-cache nil
|
||||
"A cache of the fully parsed buffer.
|
||||
If no significant changes have been made (based on the state) then
|
||||
this is returned instead of re-parsing the buffer.
|
||||
|
|
@ -120,16 +116,13 @@ this is returned instead of re-parsing the buffer.
|
|||
If you need a tag list, use `semantic-fetch-tags'. If you need the
|
||||
cached values for some reason, chances are you can add a hook to
|
||||
`semantic-after-toplevel-cache-change-hook'.")
|
||||
(make-variable-buffer-local 'semantic--buffer-cache)
|
||||
|
||||
(defvar semantic-unmatched-syntax-cache nil
|
||||
(defvar-local semantic-unmatched-syntax-cache nil
|
||||
"A cached copy of unmatched syntax tokens.")
|
||||
(make-variable-buffer-local 'semantic-unmatched-syntax-cache)
|
||||
|
||||
(defvar semantic-unmatched-syntax-cache-check nil
|
||||
(defvar-local semantic-unmatched-syntax-cache-check nil
|
||||
"Non-nil if the unmatched syntax cache is out of date.
|
||||
This is tracked with `semantic-change-function'.")
|
||||
(make-variable-buffer-local 'semantic-unmatched-syntax-cache-check)
|
||||
|
||||
(defvar semantic-edits-are-safe nil
|
||||
"When non-nil, modifications do not require a reparse.
|
||||
|
|
@ -180,19 +173,16 @@ during a flush when the cache is given a new value of nil.")
|
|||
:group 'semantic
|
||||
:type 'boolean)
|
||||
|
||||
(defvar semantic-parser-name "LL"
|
||||
(defvar-local semantic-parser-name "LL"
|
||||
"Optional name of the parser used to parse input stream.")
|
||||
(make-variable-buffer-local 'semantic-parser-name)
|
||||
|
||||
(defvar semantic--completion-cache nil
|
||||
(defvar-local semantic--completion-cache nil
|
||||
"Internal variable used by `semantic-complete-symbol'.")
|
||||
(make-variable-buffer-local 'semantic--completion-cache)
|
||||
|
||||
;;; Parse tree state management API
|
||||
;;
|
||||
(defvar semantic-parse-tree-state 'needs-rebuild
|
||||
(defvar-local semantic-parse-tree-state 'needs-rebuild
|
||||
"State of the current parse tree.")
|
||||
(make-variable-buffer-local 'semantic-parse-tree-state)
|
||||
|
||||
(defmacro semantic-parse-tree-unparseable ()
|
||||
"Indicate that the current buffer is unparseable.
|
||||
|
|
@ -268,9 +258,8 @@ These functions are called by `semantic-new-buffer-fcn', before
|
|||
(defvar semantic-init-hook nil
|
||||
"Hook run when a buffer is initialized with a parsing table.")
|
||||
|
||||
(defvar semantic-init-mode-hook nil
|
||||
(defvar-local semantic-init-mode-hook nil
|
||||
"Hook run when a buffer of a particular mode is initialized.")
|
||||
(make-variable-buffer-local 'semantic-init-mode-hook)
|
||||
|
||||
(defvar semantic-init-db-hook nil
|
||||
"Hook run when a buffer is initialized with a parsing table for DBs.
|
||||
|
|
@ -729,9 +718,8 @@ This function returns semantic tags without overlays."
|
|||
;;
|
||||
;; Any parser can use this API to provide a list of warnings during a
|
||||
;; parse which a user may want to investigate.
|
||||
(defvar semantic-parser-warnings nil
|
||||
(defvar-local semantic-parser-warnings nil
|
||||
"A list of parser warnings since the last full reparse.")
|
||||
(make-variable-buffer-local 'semantic-parser-warnings)
|
||||
|
||||
(defun semantic-clear-parser-warnings ()
|
||||
"Clear the current list of parser warnings for this buffer."
|
||||
|
|
|
|||
|
|
@ -41,10 +41,9 @@
|
|||
|
||||
;;; Variables
|
||||
;;
|
||||
(defvar semantic-bovinate-nonterminal-check-obarray nil
|
||||
(defvar-local semantic-bovinate-nonterminal-check-obarray nil
|
||||
"Obarray of streams already parsed for nonterminal symbols.
|
||||
Use this to detect infinite recursion during a parse.")
|
||||
(make-variable-buffer-local 'semantic-bovinate-nonterminal-check-obarray)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -867,9 +867,8 @@ Expected return values are:
|
|||
;; * semantic-collector-try-completion
|
||||
;; * semantic-collector-all-completions
|
||||
|
||||
(defvar semantic-collector-per-buffer-list nil
|
||||
(defvar-local semantic-collector-per-buffer-list nil
|
||||
"List of collectors active in this buffer.")
|
||||
(make-variable-buffer-local 'semantic-collector-per-buffer-list)
|
||||
|
||||
(defvar semantic-collector-list nil
|
||||
"List of global collectors active this session.")
|
||||
|
|
|
|||
|
|
@ -32,17 +32,15 @@
|
|||
(require 'semantic)
|
||||
|
||||
;;; Code:
|
||||
(defvar semantic-command-separation-character
|
||||
(defvar-local semantic-command-separation-character
|
||||
";"
|
||||
"String which indicates the end of a command.
|
||||
Used for identifying the end of a single command.")
|
||||
(make-variable-buffer-local 'semantic-command-separation-character)
|
||||
|
||||
(defvar semantic-function-argument-separation-character
|
||||
(defvar-local semantic-function-argument-separation-character
|
||||
","
|
||||
"String which indicates the end of an argument.
|
||||
Used for identifying arguments to functions.")
|
||||
(make-variable-buffer-local 'semantic-function-argument-separation-character)
|
||||
|
||||
;;; Local Contexts
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -426,17 +426,15 @@ Default action as described in `semanticdb-find-translate-path'."
|
|||
;; searchable item, then instead do the regular thing without caching.
|
||||
(semanticdb-find-translate-path-includes--internal path))))
|
||||
|
||||
(defvar semanticdb-find-lost-includes nil
|
||||
(defvar-local semanticdb-find-lost-includes nil
|
||||
"Include files that we cannot find associated with this buffer.")
|
||||
(make-variable-buffer-local 'semanticdb-find-lost-includes)
|
||||
|
||||
(defvar semanticdb-find-scanned-include-tags nil
|
||||
(defvar-local semanticdb-find-scanned-include-tags nil
|
||||
"All include tags scanned, plus action taken on the tag.
|
||||
Each entry is an alist:
|
||||
(ACTION . TAG)
|
||||
where ACTION is one of `scanned', `duplicate', `lost'
|
||||
and TAG is a clone of the include tag that was found.")
|
||||
(make-variable-buffer-local 'semanticdb-find-scanned-include-tags)
|
||||
|
||||
(defvar semanticdb-implied-include-tags nil
|
||||
"Include tags implied for all files of a given mode.
|
||||
|
|
|
|||
|
|
@ -50,27 +50,23 @@
|
|||
(defvar semanticdb-database-list nil
|
||||
"List of all active databases.")
|
||||
|
||||
(defvar semanticdb-new-database-class 'semanticdb-project-database-file
|
||||
(defvar-local semanticdb-new-database-class 'semanticdb-project-database-file
|
||||
"The default type of database created for new files.
|
||||
This can be changed on a per file basis, so that some directories
|
||||
are saved using one mechanism, and some directories via a different
|
||||
mechanism.")
|
||||
(make-variable-buffer-local 'semanticdb-new-database-class)
|
||||
|
||||
(defvar semanticdb-default-find-index-class 'semanticdb-find-search-index
|
||||
(defvar-local semanticdb-default-find-index-class 'semanticdb-find-search-index
|
||||
"The default type of search index to use for a `semanticdb-table's.
|
||||
This can be changed to try out new types of search indices.")
|
||||
(make-variable-buffer-local 'semanticdb-default-find=index-class)
|
||||
|
||||
;;;###autoload
|
||||
(defvar semanticdb-current-database nil
|
||||
(defvar-local semanticdb-current-database nil
|
||||
"For a given buffer, this is the currently active database.")
|
||||
(make-variable-buffer-local 'semanticdb-current-database)
|
||||
|
||||
;;;###autoload
|
||||
(defvar semanticdb-current-table nil
|
||||
(defvar-local semanticdb-current-table nil
|
||||
"For a given buffer, this is the currently active database table.")
|
||||
(make-variable-buffer-local 'semanticdb-current-table)
|
||||
|
||||
;;; ABSTRACT CLASSES
|
||||
;;
|
||||
|
|
@ -825,13 +821,12 @@ must return a string, (the root directory) or a list of strings (multiple
|
|||
root directories in a more complex system). This variable should be used
|
||||
by project management programs like EDE or JDE.")
|
||||
|
||||
(defvar semanticdb-project-system-databases nil
|
||||
(defvar-local semanticdb-project-system-databases nil
|
||||
"List of databases containing system library information.
|
||||
Mode authors can create their own system databases which know
|
||||
detailed information about the system libraries for querying purposes.
|
||||
Put those into this variable as a buffer-local, or mode-local
|
||||
value.")
|
||||
(make-variable-buffer-local 'semanticdb-project-system-databases)
|
||||
|
||||
(defvar semanticdb-search-system-databases t
|
||||
"Non-nil if search routines are to include a system database.")
|
||||
|
|
@ -1016,10 +1011,9 @@ DONTLOAD does not affect the creation of new database objects."
|
|||
)
|
||||
)))
|
||||
|
||||
(defvar semanticdb-out-of-buffer-create-table-fcn nil
|
||||
(defvar-local semanticdb-out-of-buffer-create-table-fcn nil
|
||||
"When non-nil, a function for creating a semanticdb table.
|
||||
This should take a filename to be parsed.")
|
||||
(make-variable-buffer-local 'semanticdb-out-of-buffer-create-table-fcn)
|
||||
|
||||
(defun semanticdb-create-table-for-file-not-in-buffer (filename)
|
||||
"Create a table for the file FILENAME.
|
||||
|
|
|
|||
|
|
@ -44,24 +44,18 @@
|
|||
;;; Code:
|
||||
|
||||
;;;###autoload
|
||||
(defvar semantic-debug-parser-source nil
|
||||
(defvar-local semantic-debug-parser-source nil
|
||||
"For any buffer, the file name (no path) of the parser.
|
||||
This would be a parser for a specific language, not the source
|
||||
to one of the parser generators.")
|
||||
;;;###autoload
|
||||
(make-variable-buffer-local 'semantic-debug-parser-source)
|
||||
|
||||
;;;###autoload
|
||||
(defvar semantic-debug-parser-class nil
|
||||
(defvar-local semantic-debug-parser-class nil
|
||||
"Class to create when building a debug parser object.")
|
||||
;;;###autoload
|
||||
(make-variable-buffer-local 'semantic-debug-parser-class)
|
||||
|
||||
;;;###autoload
|
||||
(defvar semantic-debug-parser-debugger-source nil
|
||||
(defvar-local semantic-debug-parser-debugger-source nil
|
||||
"Location of the debug parser class.")
|
||||
;;;###autoload
|
||||
(make-variable-buffer-local 'semantic-debug-parser-source)
|
||||
|
||||
(defvar semantic-debug-enabled nil
|
||||
"Non-nil when debugging a parser.")
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(defvar semantic-dependency-include-path nil
|
||||
(defvar-local semantic-dependency-include-path nil
|
||||
"Defines the include path used when searching for files.
|
||||
This should be a list of directories to search which is specific
|
||||
to the file being included.
|
||||
|
|
@ -56,9 +56,8 @@ reparsed, the cache will be reset.
|
|||
TODO: use ffap.el to locate such items?
|
||||
|
||||
NOTE: Obsolete this, or use as special user")
|
||||
(make-variable-buffer-local 'semantic-dependency-include-path)
|
||||
|
||||
(defvar semantic-dependency-system-include-path nil
|
||||
(defvar-local semantic-dependency-system-include-path nil
|
||||
"Defines the system include path.
|
||||
This should be set with either `defvar-mode-local', or with
|
||||
`semantic-add-system-include'.
|
||||
|
|
@ -71,7 +70,6 @@ When searching for a file associated with a name found in a tag of
|
|||
class include, this path will be inspected for includes of type
|
||||
`system'. Some include tags are agnostic to this setting and will
|
||||
check both the project and system directories.")
|
||||
(make-variable-buffer-local 'semantic-dependency-system-include-path)
|
||||
|
||||
(defmacro defcustom-mode-local-semantic-dependency-system-include-path
|
||||
(mode name value &optional docstring)
|
||||
|
|
|
|||
|
|
@ -78,13 +78,11 @@ Images can be used as icons instead of some types of text strings."
|
|||
:group 'semantic
|
||||
:type 'boolean)
|
||||
|
||||
(defvar semantic-function-argument-separator ","
|
||||
(defvar-local semantic-function-argument-separator ","
|
||||
"Text used to separate arguments when creating text from tags.")
|
||||
(make-variable-buffer-local 'semantic-function-argument-separator)
|
||||
|
||||
(defvar semantic-format-parent-separator "::"
|
||||
(defvar-local semantic-format-parent-separator "::"
|
||||
"Text used to separate names when between namespaces/classes and functions.")
|
||||
(make-variable-buffer-local 'semantic-format-parent-separator)
|
||||
|
||||
(defvar semantic-format-face-alist
|
||||
`( (function . font-lock-function-name-face)
|
||||
|
|
|
|||
|
|
@ -243,9 +243,8 @@ Avoid using a large BODY since it is duplicated."
|
|||
;;; Misc utilities
|
||||
;;
|
||||
|
||||
(defvar semantic-new-buffer-fcn-was-run nil
|
||||
(defvar-local semantic-new-buffer-fcn-was-run nil
|
||||
"Non-nil after `semantic-new-buffer-fcn' has been executed.")
|
||||
(make-variable-buffer-local 'semantic-new-buffer-fcn-was-run)
|
||||
|
||||
(defsubst semantic-active-p ()
|
||||
"Return non-nil if the current buffer was set up for parsing."
|
||||
|
|
|
|||
|
|
@ -432,9 +432,8 @@ Also load the specified macro libraries."
|
|||
defs)))
|
||||
(nreverse defs)))
|
||||
|
||||
(defvar semantic-grammar-macros nil
|
||||
(defvar-local semantic-grammar-macros nil
|
||||
"List of associations (MACRO-NAME . EXPANDER).")
|
||||
(make-variable-buffer-local 'semantic-grammar-macros)
|
||||
|
||||
(defun semantic-grammar-macros ()
|
||||
"Build and return the alist of defined macros."
|
||||
|
|
@ -1054,8 +1053,7 @@ See also the variable `semantic-grammar-file-regexp'."
|
|||
;;;; Macros highlighting
|
||||
;;;;
|
||||
|
||||
(defvar semantic--grammar-macros-regexp-1 nil)
|
||||
(make-variable-buffer-local 'semantic--grammar-macros-regexp-1)
|
||||
(defvar-local semantic--grammar-macros-regexp-1 nil)
|
||||
|
||||
(defun semantic--grammar-macros-regexp-1 ()
|
||||
"Return font-lock keyword regexp for pre-installed macro names."
|
||||
|
|
@ -1076,8 +1074,7 @@ See also the variable `semantic-grammar-file-regexp'."
|
|||
"\\<%use-macros\\>[ \t\r\n]+\\(\\sw\\|\\s_\\)+[ \t\r\n]+{"
|
||||
"Regexp that matches a macro declaration statement.")
|
||||
|
||||
(defvar semantic--grammar-macros-regexp-2 nil)
|
||||
(make-variable-buffer-local 'semantic--grammar-macros-regexp-2)
|
||||
(defvar-local semantic--grammar-macros-regexp-2 nil)
|
||||
|
||||
(defun semantic--grammar-clear-macros-regexp-2 (&rest _)
|
||||
"Clear the cached regexp that match macros local in this grammar.
|
||||
|
|
|
|||
|
|
@ -135,10 +135,9 @@ it is unlikely the user would be ready to type again right away."
|
|||
:group 'semantic
|
||||
:type 'hook)
|
||||
|
||||
(defvar semantic-idle-scheduler-mode nil
|
||||
(defvar-local semantic-idle-scheduler-mode nil
|
||||
"Non-nil if idle-scheduler minor mode is enabled.
|
||||
Use the command `semantic-idle-scheduler-mode' to change this variable.")
|
||||
(make-variable-buffer-local 'semantic-idle-scheduler-mode)
|
||||
|
||||
(defcustom semantic-idle-scheduler-max-buffer-size 0
|
||||
"Maximum size in bytes of buffers where idle-scheduler is enabled.
|
||||
|
|
@ -717,8 +716,7 @@ specific to a major mode. For example, in jde mode:
|
|||
|
||||
(defun semantic-idle-summary-useful-context-p ()
|
||||
"Non-nil if we should show a summary based on context."
|
||||
(if (and (boundp 'font-lock-mode)
|
||||
font-lock-mode
|
||||
(if (and font-lock-mode
|
||||
(memq (get-text-property (point) 'face)
|
||||
semantic-idle-summary-out-of-context-faces))
|
||||
;; The best I can think of at the moment is to disable
|
||||
|
|
|
|||
|
|
@ -136,12 +136,11 @@ other buffer local ones based on the same semanticdb."
|
|||
"Non-nil if `semantic-imenu-rebuild-directory-indexes' is running.")
|
||||
|
||||
;;;###autoload
|
||||
(defvar semantic-imenu-expandable-tag-classes '(type)
|
||||
(defvar-local semantic-imenu-expandable-tag-classes '(type)
|
||||
"List of expandable tag classes.
|
||||
Tags of those classes will be given submenu with children.
|
||||
By default, a `type' has interesting children. In Texinfo, however, a
|
||||
`section' has interesting children.")
|
||||
(make-variable-buffer-local 'semantic-imenu-expandable-tag-classes)
|
||||
|
||||
;;; Code:
|
||||
(defun semantic-imenu-tag-overlay (tag)
|
||||
|
|
|
|||
|
|
@ -73,28 +73,24 @@
|
|||
(declare-function c-end-of-macro "cc-engine")
|
||||
|
||||
;;; Code:
|
||||
(defvar semantic-lex-spp-macro-symbol-obarray nil
|
||||
(defvar-local semantic-lex-spp-macro-symbol-obarray nil
|
||||
"Table of macro keywords used by the Semantic Preprocessor.
|
||||
These symbols will be used in addition to those in
|
||||
`semantic-lex-spp-dynamic-macro-symbol-obarray'.")
|
||||
(make-variable-buffer-local 'semantic-lex-spp-macro-symbol-obarray)
|
||||
|
||||
(defvar semantic-lex-spp-project-macro-symbol-obarray nil
|
||||
(defvar-local semantic-lex-spp-project-macro-symbol-obarray nil
|
||||
"Table of macro keywords for this project.
|
||||
These symbols will be used in addition to those in
|
||||
`semantic-lex-spp-dynamic-macro-symbol-obarray'.")
|
||||
(make-variable-buffer-local 'semantic-lex-spp-project-macro-symbol-obarray)
|
||||
|
||||
(defvar semantic-lex-spp-dynamic-macro-symbol-obarray nil
|
||||
(defvar-local semantic-lex-spp-dynamic-macro-symbol-obarray nil
|
||||
"Table of macro keywords used during lexical analysis.
|
||||
Macros are lexical symbols which are replaced by other lexical
|
||||
tokens during lexical analysis. During analysis symbols can be
|
||||
added and removed from this symbol table.")
|
||||
(make-variable-buffer-local 'semantic-lex-spp-dynamic-macro-symbol-obarray)
|
||||
|
||||
(defvar semantic-lex-spp-dynamic-macro-symbol-obarray-stack nil
|
||||
(defvar-local semantic-lex-spp-dynamic-macro-symbol-obarray-stack nil
|
||||
"A stack of obarrays for temporarily scoped macro values.")
|
||||
(make-variable-buffer-local 'semantic-lex-spp-dynamic-macro-symbol-obarray-stack)
|
||||
|
||||
(defvar semantic-lex-spp-expanded-macro-stack nil
|
||||
"The stack of lexical SPP macros we have expanded.")
|
||||
|
|
|
|||
|
|
@ -202,10 +202,9 @@ as a PROPERTY value. FUN receives a symbol as argument."
|
|||
;; These keywords are keywords defined for using in a grammar with the
|
||||
;; %keyword declaration, and are not keywords used in Emacs Lisp.
|
||||
|
||||
(defvar semantic-flex-keywords-obarray nil
|
||||
(defvar-local semantic-flex-keywords-obarray nil
|
||||
"Buffer local keyword obarray for the lexical analyzer.
|
||||
These keywords are matched explicitly, and converted into special symbols.")
|
||||
(make-variable-buffer-local 'semantic-flex-keywords-obarray)
|
||||
|
||||
(defmacro semantic-lex-keyword-invalid (name)
|
||||
"Signal that NAME is an invalid keyword name."
|
||||
|
|
@ -333,9 +332,8 @@ so that analysis can continue, if possible."
|
|||
;; with the %type declaration. Types represent different syntaxes.
|
||||
;; See code for `semantic-lex-preset-default-types' for the classic
|
||||
;; types of syntax.
|
||||
(defvar semantic-lex-types-obarray nil
|
||||
(defvar-local semantic-lex-types-obarray nil
|
||||
"Buffer local types obarray for the lexical analyzer.")
|
||||
(make-variable-buffer-local 'semantic-lex-types-obarray)
|
||||
|
||||
(defun semantic-lex-type-invalid (type)
|
||||
"Signal that TYPE is an invalid lexical type name."
|
||||
|
|
@ -472,11 +470,10 @@ PROPERTY set."
|
|||
;;
|
||||
|
||||
;; FIXME change to non-obsolete default.
|
||||
(defvar semantic-lex-analyzer 'semantic-flex
|
||||
(defvar-local semantic-lex-analyzer 'semantic-flex
|
||||
"The lexical analyzer used for a given buffer.
|
||||
See `semantic-lex' for documentation.
|
||||
For compatibility with Semantic 1.x it defaults to `semantic-flex'.")
|
||||
(make-variable-buffer-local 'semantic-lex-analyzer)
|
||||
|
||||
(defvar semantic-lex-tokens
|
||||
'(
|
||||
|
|
@ -558,7 +555,7 @@ The key to this alist is the symbol representing token type that
|
|||
- whitespace: Characters that match `\\s-+' regexp.
|
||||
This token is produced with `semantic-lex-whitespace'.")
|
||||
|
||||
(defvar semantic-lex-syntax-modifications nil
|
||||
(defvar-local semantic-lex-syntax-modifications nil
|
||||
"Changes to the syntax table for this buffer.
|
||||
These changes are active only while the buffer is being flexed.
|
||||
This is a list where each element has the form:
|
||||
|
|
@ -566,20 +563,17 @@ This is a list where each element has the form:
|
|||
CHAR is the char passed to `modify-syntax-entry',
|
||||
and CLASS is the string also passed to `modify-syntax-entry' to define
|
||||
what syntax class CHAR has.")
|
||||
(make-variable-buffer-local 'semantic-lex-syntax-modifications)
|
||||
|
||||
(defvar semantic-lex-syntax-table nil
|
||||
(defvar-local semantic-lex-syntax-table nil
|
||||
"Syntax table used by lexical analysis.
|
||||
See also `semantic-lex-syntax-modifications'.")
|
||||
(make-variable-buffer-local 'semantic-lex-syntax-table)
|
||||
|
||||
(defvar semantic-lex-comment-regex nil
|
||||
(defvar-local semantic-lex-comment-regex nil
|
||||
"Regular expression for identifying comment start during lexical analysis.
|
||||
This may be automatically set when semantic initializes in a mode, but
|
||||
may need to be overridden for some special languages.")
|
||||
(make-variable-buffer-local 'semantic-lex-comment-regex)
|
||||
|
||||
(defvar semantic-lex-number-expression
|
||||
(defvar-local semantic-lex-number-expression
|
||||
;; This expression was written by David Ponce for Java, and copied
|
||||
;; here for C and any other similar language.
|
||||
(eval-when-compile
|
||||
|
|
@ -628,12 +622,10 @@ FLOATING_POINT_LITERAL:
|
|||
| [0-9]+<EXPONENT>[fFdD]?
|
||||
| [0-9]+<EXPONENT>?[fFdD]
|
||||
;")
|
||||
(make-variable-buffer-local 'semantic-lex-number-expression)
|
||||
|
||||
(defvar semantic-lex-depth 0
|
||||
(defvar-local semantic-lex-depth 0
|
||||
"Default lexing depth.
|
||||
This specifies how many lists to create tokens in.")
|
||||
(make-variable-buffer-local 'semantic-lex-depth)
|
||||
|
||||
(defvar semantic-lex-unterminated-syntax-end-function
|
||||
(lambda (_syntax _syntax-start lex-end) lex-end)
|
||||
|
|
@ -1768,7 +1760,7 @@ when finding unterminated syntax.")
|
|||
(make-obsolete-variable 'semantic-flex-unterminated-syntax-end-function
|
||||
nil "28.1")
|
||||
|
||||
(defvar semantic-flex-extensions nil
|
||||
(defvar-local semantic-flex-extensions nil
|
||||
"Buffer local extensions to the lexical analyzer.
|
||||
This should contain an alist with a key of a regex and a data element of
|
||||
a function. The function should both move point, and return a lexical
|
||||
|
|
@ -1777,10 +1769,9 @@ token of the form:
|
|||
nil is also a valid return value.
|
||||
TYPE can be any type of symbol, as long as it doesn't occur as a
|
||||
nonterminal in the language definition.")
|
||||
(make-variable-buffer-local 'semantic-flex-extensions)
|
||||
(make-obsolete-variable 'semantic-flex-extensions nil "28.1")
|
||||
|
||||
(defvar semantic-flex-syntax-modifications nil
|
||||
(defvar-local semantic-flex-syntax-modifications nil
|
||||
"Changes to the syntax table for this buffer.
|
||||
These changes are active only while the buffer is being flexed.
|
||||
This is a list where each element has the form:
|
||||
|
|
@ -1788,47 +1779,40 @@ This is a list where each element has the form:
|
|||
CHAR is the char passed to `modify-syntax-entry',
|
||||
and CLASS is the string also passed to `modify-syntax-entry' to define
|
||||
what syntax class CHAR has.")
|
||||
(make-variable-buffer-local 'semantic-flex-syntax-modifications)
|
||||
(make-obsolete-variable 'semantic-flex-syntax-modifications nil "28.1")
|
||||
|
||||
(defvar semantic-ignore-comments t
|
||||
(defvar-local semantic-ignore-comments t
|
||||
"Default comment handling.
|
||||
The value t means to strip comments when flexing; nil means
|
||||
to keep comments as part of the token stream.")
|
||||
(make-variable-buffer-local 'semantic-ignore-comments)
|
||||
(make-obsolete-variable 'semantic-ignore-comments nil "28.1")
|
||||
|
||||
(defvar semantic-flex-enable-newlines nil
|
||||
(defvar-local semantic-flex-enable-newlines nil
|
||||
"When flexing, report newlines as syntactic elements.
|
||||
Useful for languages where the newline is a special case terminator.
|
||||
Only set this on a per mode basis, not globally.")
|
||||
(make-variable-buffer-local 'semantic-flex-enable-newlines)
|
||||
(make-obsolete-variable 'semantic-flex-enable-newlines nil "28.1")
|
||||
|
||||
(defvar semantic-flex-enable-whitespace nil
|
||||
(defvar-local semantic-flex-enable-whitespace nil
|
||||
"When flexing, report whitespace as syntactic elements.
|
||||
Useful for languages where the syntax is whitespace dependent.
|
||||
Only set this on a per mode basis, not globally.")
|
||||
(make-variable-buffer-local 'semantic-flex-enable-whitespace)
|
||||
(make-obsolete-variable 'semantic-flex-enable-whitespace nil "28.1")
|
||||
|
||||
(defvar semantic-flex-enable-bol nil
|
||||
(defvar-local semantic-flex-enable-bol nil
|
||||
"When flexing, report beginning of lines as syntactic elements.
|
||||
Useful for languages like python which are indentation sensitive.
|
||||
Only set this on a per mode basis, not globally.")
|
||||
(make-variable-buffer-local 'semantic-flex-enable-bol)
|
||||
(make-obsolete-variable 'semantic-flex-enable-bol nil "28.1")
|
||||
|
||||
(defvar semantic-number-expression semantic-lex-number-expression
|
||||
(defvar-local semantic-number-expression semantic-lex-number-expression
|
||||
"See variable `semantic-lex-number-expression'.")
|
||||
(make-variable-buffer-local 'semantic-number-expression)
|
||||
(make-obsolete-variable 'semantic-number-expression
|
||||
'semantic-lex-number-expression "28.1")
|
||||
|
||||
(defvar semantic-flex-depth 0
|
||||
(defvar-local semantic-flex-depth 0
|
||||
"Default flexing depth.
|
||||
This specifies how many lists to create tokens in.")
|
||||
(make-variable-buffer-local 'semantic-flex-depth)
|
||||
(make-obsolete-variable 'semantic-flex-depth nil "28.1")
|
||||
|
||||
(provide 'semantic/lex)
|
||||
|
|
|
|||
|
|
@ -601,10 +601,9 @@ Makes C/C++ language like assumptions."
|
|||
)
|
||||
(t nil)))
|
||||
|
||||
(defvar senator-isearch-semantic-mode nil
|
||||
(defvar-local senator-isearch-semantic-mode nil
|
||||
"Non-nil if isearch does semantic search.
|
||||
This is a buffer local variable.")
|
||||
(make-variable-buffer-local 'senator-isearch-semantic-mode)
|
||||
|
||||
(defun senator-beginning-of-defun (&optional arg)
|
||||
"Move backward to the beginning of a defun.
|
||||
|
|
|
|||
|
|
@ -310,11 +310,10 @@ may re-organize the list with side-effects."
|
|||
;; external members, and bring them together in a cloned copy of the
|
||||
;; class tag.
|
||||
;;
|
||||
(defvar semantic-orphaned-member-metaparent-type "class"
|
||||
(defvar-local semantic-orphaned-member-metaparent-type "class"
|
||||
"In `semantic-adopt-external-members', the type of 'type for metaparents.
|
||||
A metaparent is a made-up type semantic token used to hold the child list
|
||||
of orphaned members of a named type.")
|
||||
(make-variable-buffer-local 'semantic-orphaned-member-metaparent-type)
|
||||
|
||||
(defvar semantic-mark-external-member-function nil
|
||||
"Function called when an externally defined orphan is found.
|
||||
|
|
|
|||
|
|
@ -1194,7 +1194,7 @@ See also the function `semantic--expand-tag'."
|
|||
(setq tag (cdr tag)))
|
||||
(null tag)))
|
||||
|
||||
(defvar semantic-tag-expand-function nil
|
||||
(defvar-local semantic-tag-expand-function nil
|
||||
"Function used to expand a tag.
|
||||
It is passed each tag production, and must return a list of tags
|
||||
derived from it, or nil if it does not need to be expanded.
|
||||
|
|
@ -1207,7 +1207,6 @@ following definition is easily parsed into one tag:
|
|||
|
||||
This function should take this compound tag and turn it into two tags,
|
||||
one for A, and the other for B.")
|
||||
(make-variable-buffer-local 'semantic-tag-expand-function)
|
||||
|
||||
(defun semantic--tag-expand (tag)
|
||||
"Convert TAG from a raw state to a cooked state, and expand it.
|
||||
|
|
|
|||
|
|
@ -498,10 +498,9 @@ non-nil if the minor mode is enabled."
|
|||
(semantic-add-minor-mode 'semantic-show-parser-state-mode
|
||||
"")
|
||||
|
||||
(defvar semantic-show-parser-state-string nil
|
||||
(defvar-local semantic-show-parser-state-string nil
|
||||
"String showing the parser state for this buffer.
|
||||
See `semantic-show-parser-state-marker' for details.")
|
||||
(make-variable-buffer-local 'semantic-show-parser-state-string)
|
||||
|
||||
(defun semantic-show-parser-state-marker (&rest ignore)
|
||||
"Set `semantic-show-parser-state-string' to indicate parser state.
|
||||
|
|
@ -692,10 +691,6 @@ non-nil if the minor mode is enabled."
|
|||
;; Disable minor mode if semantic stuff not available
|
||||
(setq semantic-stickyfunc-mode nil)
|
||||
(error "Buffer %s was not set up for parsing" (buffer-name)))
|
||||
(unless (boundp 'header-line-format)
|
||||
;; Disable if there are no header lines to use.
|
||||
(setq semantic-stickyfunc-mode nil)
|
||||
(error "Sticky Function mode requires Emacs"))
|
||||
;; Enable the mode
|
||||
;; Save previous buffer local value of header line format.
|
||||
(when (and (local-variable-p 'header-line-format (current-buffer))
|
||||
|
|
@ -713,10 +708,9 @@ non-nil if the minor mode is enabled."
|
|||
(setq header-line-format semantic-stickyfunc-old-hlf)
|
||||
(kill-local-variable 'semantic-stickyfunc-old-hlf)))))
|
||||
|
||||
(defvar semantic-stickyfunc-sticky-classes
|
||||
(defvar-local semantic-stickyfunc-sticky-classes
|
||||
'(function type)
|
||||
"List of tag classes which stickyfunc will display in the header line.")
|
||||
(make-variable-buffer-local 'semantic-stickyfunc-sticky-classes)
|
||||
|
||||
(defcustom semantic-stickyfunc-show-only-functions-p nil
|
||||
"Non-nil means don't show lines that aren't part of a tag.
|
||||
|
|
@ -886,9 +880,8 @@ Argument EVENT describes the event that caused this function to be called."
|
|||
)
|
||||
(select-window startwin)))
|
||||
|
||||
(defvar semantic-highlight-func-ct-overlay nil
|
||||
(defvar-local semantic-highlight-func-ct-overlay nil
|
||||
"Overlay used to highlight the tag the cursor is in.")
|
||||
(make-variable-buffer-local 'semantic-highlight-func-ct-overlay)
|
||||
|
||||
(defface semantic-highlight-func-current-tag-face
|
||||
'((((class color) (background dark))
|
||||
|
|
|
|||
|
|
@ -39,20 +39,18 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(defvar semantic-type-relation-separator-character '(".")
|
||||
(defvar-local semantic-type-relation-separator-character '(".")
|
||||
"Character strings used to separate a parent/child relationship.
|
||||
This list of strings are used for displaying or finding separators
|
||||
in variable field dereferencing. The first character will be used for
|
||||
display. In C, a type field is separated like this: \"type.field\"
|
||||
thus, the character is a \".\". In C, and additional value of \"->\"
|
||||
would be in the list, so that \"type->field\" could be found.")
|
||||
(make-variable-buffer-local 'semantic-type-relation-separator-character)
|
||||
|
||||
(defvar semantic-equivalent-major-modes nil
|
||||
(defvar-local semantic-equivalent-major-modes nil
|
||||
"List of major modes which are considered equivalent.
|
||||
Equivalent modes share a parser, and a set of override methods.
|
||||
A value of nil means that the current major mode is the only one.")
|
||||
(make-variable-buffer-local 'semantic-equivalent-major-modes)
|
||||
|
||||
(declare-function semanticdb-file-stream "semantic/db" (file))
|
||||
|
||||
|
|
|
|||
|
|
@ -93,15 +93,13 @@ it to a form suitable for the Wisent's parser."
|
|||
|
||||
;;; Syntax analysis
|
||||
;;
|
||||
(defvar wisent-error-function nil
|
||||
(defvar-local wisent-error-function nil
|
||||
"Function used to report parse error.
|
||||
By default use the function `wisent-message'.")
|
||||
(make-variable-buffer-local 'wisent-error-function)
|
||||
|
||||
(defvar wisent-lexer-function 'wisent-lex
|
||||
(defvar-local wisent-lexer-function 'wisent-lex
|
||||
"Function used to obtain the next lexical token in input.
|
||||
Should be a lexical analyzer created with `define-wisent-lexer'.")
|
||||
(make-variable-buffer-local 'wisent-lexer-function)
|
||||
|
||||
;; Tag production
|
||||
;;
|
||||
|
|
|
|||
|
|
@ -33,11 +33,6 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
;; Emacs < 23.3
|
||||
(eval-and-compile
|
||||
(unless (boundp 'float-pi)
|
||||
(defconst float-pi (* 4 (atan 1)) "The value of Pi (3.1415926...).")))
|
||||
|
||||
;;;###autoload
|
||||
(defun color-name-to-rgb (color &optional frame)
|
||||
"Convert COLOR string to a list of normalized RGB components.
|
||||
|
|
|
|||
|
|
@ -2253,15 +2253,23 @@ This function could be on `comint-output-filter-functions' or bound to a key."
|
|||
"Strip trailing `^M' characters from the current output group.
|
||||
This function could be on `comint-output-filter-functions' or bound to a key."
|
||||
(interactive)
|
||||
(let ((pmark (process-mark (get-buffer-process (current-buffer)))))
|
||||
(save-excursion
|
||||
(condition-case nil
|
||||
(goto-char
|
||||
(if (called-interactively-p 'interactive)
|
||||
comint-last-input-end comint-last-output-start))
|
||||
(error nil))
|
||||
(while (re-search-forward "\r+$" pmark t)
|
||||
(replace-match "" t t)))))
|
||||
(let ((process (get-buffer-process (current-buffer))))
|
||||
(if (not process)
|
||||
;; This function may be used in
|
||||
;; `comint-output-filter-functions', and in that case, if
|
||||
;; there's no process, then we should do nothing. If
|
||||
;; interactive, report an error.
|
||||
(when (called-interactively-p 'interactive)
|
||||
(error "No process in the current buffer"))
|
||||
(let ((pmark (process-mark process)))
|
||||
(save-excursion
|
||||
(condition-case nil
|
||||
(goto-char
|
||||
(if (called-interactively-p 'interactive)
|
||||
comint-last-input-end comint-last-output-start))
|
||||
(error nil))
|
||||
(while (re-search-forward "\r+$" pmark t)
|
||||
(replace-match "" t t)))))))
|
||||
(define-obsolete-function-alias 'shell-strip-ctrl-m #'comint-strip-ctrl-m "27.1")
|
||||
|
||||
(defun comint-show-maximum-output ()
|
||||
|
|
@ -2375,12 +2383,11 @@ a buffer local variable."
|
|||
;; saved -- typically passwords to ftp, telnet, or somesuch.
|
||||
;; Just enter m-x comint-send-invisible and type in your line.
|
||||
|
||||
(defvar comint-password-function nil
|
||||
(defvar-local comint-password-function nil
|
||||
"Abnormal hook run when prompted for a password.
|
||||
This function gets one argument, a string containing the prompt.
|
||||
It may return a string containing the password, or nil if normal
|
||||
password prompting should occur.")
|
||||
(make-variable-buffer-local 'comint-password-function)
|
||||
|
||||
(defun comint-send-invisible (&optional prompt)
|
||||
"Read a string without echoing.
|
||||
|
|
|
|||
|
|
@ -505,9 +505,8 @@ Used to decide whether to save completions.")
|
|||
;; Old name, non-namespace-clean.
|
||||
(defvaralias 'cmpl-syntax-table 'completion-syntax-table)
|
||||
|
||||
(defvar completion-syntax-table completion-standard-syntax-table
|
||||
(defvar-local completion-syntax-table completion-standard-syntax-table
|
||||
"This variable holds the current completion syntax table.")
|
||||
(make-variable-buffer-local 'completion-syntax-table)
|
||||
|
||||
;;-----------------------------------------------
|
||||
;; Symbol functions
|
||||
|
|
|
|||
|
|
@ -350,7 +350,7 @@ for more information."
|
|||
;; if you need to recompile all the Lisp files using interpreted code.
|
||||
`(custom-declare-variable
|
||||
',symbol
|
||||
,(if lexical-binding ;FIXME: This is not reliable, but is all we have.
|
||||
,(if lexical-binding
|
||||
;; The STANDARD arg should be an expression that evaluates to
|
||||
;; the standard value. The use of `eval' for it is spread
|
||||
;; over many different places and hence difficult to
|
||||
|
|
@ -627,6 +627,10 @@ property, or (ii) an alias for another customizable variable."
|
|||
(or (get variable 'standard-value)
|
||||
(get variable 'custom-autoload))))
|
||||
|
||||
(defun custom--standard-value (variable)
|
||||
"Return the standard value of VARIABLE."
|
||||
(eval (car (get variable 'standard-value)) t))
|
||||
|
||||
(define-obsolete-function-alias 'user-variable-p 'custom-variable-p "24.3")
|
||||
|
||||
(defun custom-note-var-changed (variable)
|
||||
|
|
|
|||
|
|
@ -5,10 +5,6 @@
|
|||
;; Author: Eric M. Ludlam <zappo@gnu.org>
|
||||
;; Keywords: file, tags, tools
|
||||
|
||||
(defvar dframe-version "1.3"
|
||||
"The current version of the dedicated frame library.")
|
||||
(make-obsolete-variable 'dframe-version nil "28.1")
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
;; GNU Emacs is free software: you can redistribute it and/or modify
|
||||
|
|
@ -150,42 +146,35 @@ selected frame and the focus will change to that frame."
|
|||
:group 'dframe
|
||||
:type 'hook)
|
||||
|
||||
(defvar dframe-track-mouse-function nil
|
||||
(defvar-local dframe-track-mouse-function nil
|
||||
"A function to call when the mouse is moved in the given frame.
|
||||
Typically used to display info about the line under the mouse.")
|
||||
(make-variable-buffer-local 'dframe-track-mouse-function)
|
||||
|
||||
(defvar dframe-help-echo-function nil
|
||||
(defvar-local dframe-help-echo-function nil
|
||||
"A function to call when help-echo is used in newer versions of Emacs.
|
||||
Typically used to display info about the line under the mouse.")
|
||||
(make-variable-buffer-local 'dframe-help-echo-function)
|
||||
|
||||
(defvar dframe-mouse-click-function nil
|
||||
(defvar-local dframe-mouse-click-function nil
|
||||
"A function to call when the mouse is clicked.
|
||||
Valid clicks are mouse 2, our double mouse 1.")
|
||||
(make-variable-buffer-local 'dframe-mouse-click-function)
|
||||
|
||||
(defvar dframe-mouse-position-function nil
|
||||
(defvar-local dframe-mouse-position-function nil
|
||||
"A function to call to position the cursor for a mouse click.")
|
||||
(make-variable-buffer-local 'dframe-mouse-position-function)
|
||||
|
||||
(defvar dframe-power-click nil
|
||||
"Never set this by hand. Value is t when S-mouse activity occurs.")
|
||||
|
||||
(defvar dframe-timer nil
|
||||
(defvar-local dframe-timer nil
|
||||
"The dframe timer used for updating the buffer.")
|
||||
(make-variable-buffer-local 'dframe-timer)
|
||||
|
||||
(defvar dframe-attached-frame nil
|
||||
(defvar-local dframe-attached-frame nil
|
||||
"The frame which started a frame mode.
|
||||
This is the frame from which all interesting activities will go
|
||||
for the mode using dframe.")
|
||||
(make-variable-buffer-local 'dframe-attached-frame)
|
||||
|
||||
(defvar dframe-controlled nil
|
||||
(defvar-local dframe-controlled nil
|
||||
"Is this buffer controlled by a dedicated frame.
|
||||
Local to those buffers, as a function called that created it.")
|
||||
(make-variable-buffer-local 'dframe-controlled)
|
||||
|
||||
(defun dframe-update-keymap (map)
|
||||
"Update the keymap MAP for dframe default bindings."
|
||||
|
|
@ -686,28 +675,26 @@ Evaluates all cached timer functions in sequence."
|
|||
(funcall (car l)))
|
||||
(setq l (cdr l)))))
|
||||
|
||||
(defalias 'dframe-popup-kludge
|
||||
(lambda (e)
|
||||
"Pop up a menu related to the clicked on item.
|
||||
(defun dframe-popup-kludge (e)
|
||||
"Pop up a menu related to the clicked on item.
|
||||
Must be bound to event E."
|
||||
(interactive "e")
|
||||
(save-excursion
|
||||
(mouse-set-point e)
|
||||
;; This gets the cursor where the user can see it.
|
||||
(if (not (bolp)) (forward-char -1))
|
||||
(sit-for 0)
|
||||
(popup-menu (mouse-menu-major-mode-map) e))))
|
||||
(interactive "e")
|
||||
(save-excursion
|
||||
(mouse-set-point e)
|
||||
;; This gets the cursor where the user can see it.
|
||||
(if (not (bolp)) (forward-char -1))
|
||||
(sit-for 0)
|
||||
(popup-menu (mouse-menu-major-mode-map) e)))
|
||||
|
||||
;;; Interactive user functions for the mouse
|
||||
;;
|
||||
(defalias 'dframe-mouse-event-p
|
||||
(lambda (event)
|
||||
"Return t if the event is a mouse related event."
|
||||
(if (and (listp event)
|
||||
(member (event-basic-type event)
|
||||
'(mouse-1 mouse-2 mouse-3)))
|
||||
t
|
||||
nil)))
|
||||
(defun dframe-mouse-event-p (event)
|
||||
"Return t if the event is a mouse related event."
|
||||
(if (and (listp event)
|
||||
(member (event-basic-type event)
|
||||
'(mouse-1 mouse-2 mouse-3)))
|
||||
t
|
||||
nil))
|
||||
|
||||
(defun dframe-track-mouse (event)
|
||||
"For motion EVENT, display info about the current line."
|
||||
|
|
@ -836,6 +823,13 @@ the mode-line."
|
|||
(t (dframe-message
|
||||
"Click on the edge of the mode line to scroll left/right")))))
|
||||
|
||||
|
||||
;;; Obsolete
|
||||
|
||||
(defvar dframe-version "1.3"
|
||||
"The current version of the dedicated frame library.")
|
||||
(make-obsolete-variable 'dframe-version nil "28.1")
|
||||
|
||||
(provide 'dframe)
|
||||
|
||||
;;; dframe.el ends here
|
||||
|
|
|
|||
|
|
@ -3148,7 +3148,7 @@ REGEXP should use constructs supported by your local `grep' command."
|
|||
(with-current-buffer
|
||||
(let ((xref-show-xrefs-function
|
||||
;; Some future-proofing (bug#44905).
|
||||
(eval (car (get 'xref-show-xrefs-function 'standard-value)))))
|
||||
(custom--standard-value 'xref-show-xrefs-function)))
|
||||
(dired-do-find-regexp from))
|
||||
(xref-query-replace-in-results from to)))
|
||||
|
||||
|
|
|
|||
|
|
@ -2332,19 +2332,9 @@ to relist the file at point or the marked files or a
|
|||
subdirectory, or type \\[dired-build-subdir-alist] to parse the buffer
|
||||
again for the directory tree.
|
||||
|
||||
Customization variables (rename this buffer and type \\[describe-variable] on each line
|
||||
for more info):
|
||||
See the `dired' customization group for a list of user options.
|
||||
|
||||
`dired-listing-switches'
|
||||
`dired-trivial-filenames'
|
||||
`dired-marker-char'
|
||||
`dired-del-marker'
|
||||
`dired-keep-marker-rename'
|
||||
`dired-keep-marker-copy'
|
||||
`dired-keep-marker-hardlink'
|
||||
`dired-keep-marker-symlink'
|
||||
|
||||
Hooks (use \\[describe-variable] to see their documentation):
|
||||
This mode runs the following hooks:
|
||||
|
||||
`dired-before-readin-hook'
|
||||
`dired-after-readin-hook'
|
||||
|
|
|
|||
|
|
@ -95,8 +95,7 @@ but not `C-u X' or `ESC X' since the X is not the prefix key."
|
|||
|
||||
(global-set-key [ignore] 'ignore)
|
||||
|
||||
(or (boundp 'isearch-mode-map)
|
||||
(load-library "isearch"))
|
||||
(require 'isearch)
|
||||
|
||||
(define-key isearch-mode-map [ignore]
|
||||
(lambda () (interactive) (isearch-update)))
|
||||
|
|
@ -141,12 +140,6 @@ but not `C-u X' or `ESC X' since the X is not the prefix key."
|
|||
|
||||
;;; Mode
|
||||
|
||||
;; This feature seemed useless and it confused describe-mode,
|
||||
;; so I deleted it.
|
||||
;; (defvar double-mode-name "Double")
|
||||
;; ;; Name of current double mode.
|
||||
;; (make-variable-buffer-local 'double-mode-name)
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode double-mode
|
||||
"Toggle special insertion on double keypresses (Double mode).
|
||||
|
|
|
|||
|
|
@ -95,8 +95,7 @@
|
|||
map)
|
||||
"Keymap defining commands available in `electric-help-mode'.")
|
||||
|
||||
(defvar electric-help-orig-major-mode nil)
|
||||
(make-variable-buffer-local 'electric-help-orig-major-mode)
|
||||
(defvar-local electric-help-orig-major-mode nil)
|
||||
|
||||
(defun electric-help-mode ()
|
||||
"`with-electric-help' temporarily places its buffer in this mode.
|
||||
|
|
|
|||
|
|
@ -67,9 +67,8 @@
|
|||
(define-obsolete-variable-alias 'chart-map 'chart-mode-map "24.1")
|
||||
(defvar chart-mode-map (make-sparse-keymap) "Keymap used in chart mode.")
|
||||
|
||||
(defvar chart-local-object nil
|
||||
(defvar-local chart-local-object nil
|
||||
"Local variable containing the locally displayed chart object.")
|
||||
(make-variable-buffer-local 'chart-local-object)
|
||||
|
||||
(defvar chart-face-color-list '("red" "green" "blue"
|
||||
"cyan" "yellow" "purple")
|
||||
|
|
|
|||
|
|
@ -147,13 +147,6 @@
|
|||
;;
|
||||
;; See the above section "Checking Parameters" for details about
|
||||
;; parameter checking.
|
||||
;;
|
||||
;; Dependencies:
|
||||
;;
|
||||
;; This file requires lisp-mnt (Lisp maintenance routines) for the
|
||||
;; comment checkers.
|
||||
;;
|
||||
;; Requires custom for Emacs v20.
|
||||
|
||||
;;; TO DO:
|
||||
;; Hook into the byte compiler on a defun/defvar level to generate
|
||||
|
|
|
|||
|
|
@ -278,11 +278,10 @@ For example, you could write
|
|||
((not globalp)
|
||||
`(progn
|
||||
:autoload-end
|
||||
(defvar ,mode ,init-value
|
||||
(defvar-local ,mode ,init-value
|
||||
,(concat (format "Non-nil if %s is enabled.\n" pretty-name)
|
||||
(internal--format-docstring-line
|
||||
"Use the command `%s' to change this variable." mode)))
|
||||
(make-variable-buffer-local ',mode)))
|
||||
"Use the command `%s' to change this variable." mode)))))
|
||||
(t
|
||||
(let ((base-doc-string
|
||||
(concat "Non-nil if %s is enabled.
|
||||
|
|
@ -419,6 +418,7 @@ on if the hook has explicitly disabled it.
|
|||
(pretty-global-name (easy-mmode-pretty-mode-name global-mode))
|
||||
(group nil)
|
||||
(extra-keywords nil)
|
||||
(MODE-variable mode)
|
||||
(MODE-buffers (intern (concat global-mode-name "-buffers")))
|
||||
(MODE-enable-in-buffers
|
||||
(intern (concat global-mode-name "-enable-in-buffers")))
|
||||
|
|
@ -440,6 +440,7 @@ on if the hook has explicitly disabled it.
|
|||
(pcase keyw
|
||||
(:group (setq group (nconc group (list :group (pop body)))))
|
||||
(:global (pop body))
|
||||
(:variable (setq MODE-variable (pop body)))
|
||||
(:predicate
|
||||
(setq predicate (list (pop body)))
|
||||
(setq turn-on-function
|
||||
|
|
@ -453,8 +454,7 @@ on if the hook has explicitly disabled it.
|
|||
(progn
|
||||
(put ',global-mode 'globalized-minor-mode t)
|
||||
:autoload-end
|
||||
(defvar ,MODE-major-mode nil)
|
||||
(make-variable-buffer-local ',MODE-major-mode))
|
||||
(defvar-local ,MODE-major-mode nil))
|
||||
;; The actual global minor-mode
|
||||
(define-minor-mode ,global-mode
|
||||
,(concat (format "Toggle %s in all buffers.\n" pretty-name)
|
||||
|
|
@ -543,7 +543,7 @@ list."
|
|||
(with-current-buffer buf
|
||||
(unless ,MODE-set-explicitly
|
||||
(unless (eq ,MODE-major-mode major-mode)
|
||||
(if ,mode
|
||||
(if ,MODE-variable
|
||||
(progn
|
||||
(,mode -1)
|
||||
(funcall ,turn-on-function))
|
||||
|
|
|
|||
|
|
@ -341,7 +341,7 @@ Return the result of the last expression in BODY."
|
|||
;; FIXME: We should probably just be using `pop-to-buffer'.
|
||||
(setq window
|
||||
(cond
|
||||
((and (edebug-window-live-p window)
|
||||
((and (window-live-p window)
|
||||
(eq (window-buffer window) buffer))
|
||||
window)
|
||||
((eq (window-buffer) buffer)
|
||||
|
|
@ -392,7 +392,7 @@ Return the result of the last expression in BODY."
|
|||
;; Get either a full window configuration or some window information.
|
||||
(if (listp which-windows)
|
||||
(mapcar (lambda (window)
|
||||
(if (edebug-window-live-p window)
|
||||
(if (window-live-p window)
|
||||
(list window
|
||||
(window-buffer window)
|
||||
(window-point window)
|
||||
|
|
@ -407,7 +407,7 @@ Return the result of the last expression in BODY."
|
|||
(mapcar (lambda (one-window-info)
|
||||
(if one-window-info
|
||||
(apply (lambda (window buffer point start hscroll)
|
||||
(if (edebug-window-live-p window)
|
||||
(if (window-live-p window)
|
||||
(progn
|
||||
(set-window-buffer window buffer)
|
||||
(set-window-point window point)
|
||||
|
|
@ -2641,12 +2641,11 @@ See `edebug-behavior-alist' for implementations.")
|
|||
|
||||
|
||||
;; window-start now stored with each function.
|
||||
;;(defvar edebug-window-start nil)
|
||||
;;(defvar-local edebug-window-start nil)
|
||||
;; Remember where each buffers' window starts between edebug calls.
|
||||
;; This is to avoid spurious recentering.
|
||||
;; Does this still need to be buffer-local??
|
||||
;;(setq-default edebug-window-start nil)
|
||||
;;(make-variable-buffer-local 'edebug-window-start)
|
||||
|
||||
|
||||
;; Dynamically declared unbound vars
|
||||
|
|
@ -2689,7 +2688,7 @@ See `edebug-behavior-alist' for implementations.")
|
|||
(edebug-outside-window (selected-window))
|
||||
(edebug-outside-buffer (current-buffer))
|
||||
(edebug-outside-point (point))
|
||||
(edebug-outside-mark (edebug-mark))
|
||||
(edebug-outside-mark (mark t))
|
||||
edebug-outside-windows ; Window or screen configuration.
|
||||
edebug-buffer-points
|
||||
|
||||
|
|
@ -2858,7 +2857,7 @@ See `edebug-behavior-alist' for implementations.")
|
|||
|
||||
;; Unrestore edebug-buffer's window-start, if displayed.
|
||||
(let ((window (car edebug-window-data)))
|
||||
(if (and (edebug-window-live-p window)
|
||||
(if (and (window-live-p window)
|
||||
(eq (window-buffer) edebug-buffer))
|
||||
(progn
|
||||
(set-window-start window (cdr edebug-window-data)
|
||||
|
|
@ -2877,7 +2876,7 @@ See `edebug-behavior-alist' for implementations.")
|
|||
;; Since we may be in a save-excursion, in case of quit,
|
||||
;; reselect the outside window only.
|
||||
;; Only needed if we are not recovering windows??
|
||||
(if (edebug-window-live-p edebug-outside-window)
|
||||
(if (window-live-p edebug-outside-window)
|
||||
(select-window edebug-outside-window))
|
||||
) ; if edebug-save-windows
|
||||
|
||||
|
|
@ -4541,11 +4540,6 @@ It is removed when you hit any char."
|
|||
|
||||
;;; Emacs version specific code
|
||||
|
||||
(defalias 'edebug-window-live-p 'window-live-p)
|
||||
|
||||
(defun edebug-mark ()
|
||||
(mark t))
|
||||
|
||||
(defun edebug-set-conditional-breakpoint (arg condition)
|
||||
"Set a conditional breakpoint at nearest sexp.
|
||||
The condition is evaluated in the outside context.
|
||||
|
|
@ -4661,7 +4655,15 @@ instrumentation for, defaulting to all functions."
|
|||
(message "Removed edebug instrumentation from %s"
|
||||
(mapconcat #'symbol-name functions ", ")))
|
||||
|
||||
|
||||
;;; Obsolete.
|
||||
|
||||
(defun edebug-mark ()
|
||||
(declare (obsolete mark "28.1"))
|
||||
(mark t))
|
||||
|
||||
(define-obsolete-function-alias 'edebug-mark-marker #'mark-marker "28.1")
|
||||
(define-obsolete-function-alias 'edebug-window-live-p #'window-live-p "28.1")
|
||||
|
||||
(provide 'edebug)
|
||||
;;; edebug.el ends here
|
||||
|
|
|
|||
|
|
@ -110,8 +110,7 @@
|
|||
;; Boy Jim's profiler.el. Both were written for Emacs 18 and both were
|
||||
;; pretty good first shots at profiling, but I found that they didn't
|
||||
;; provide the functionality or interface that I wanted, so I wrote
|
||||
;; this. I've tested elp in XEmacs 19 and Emacs 19. There's no point
|
||||
;; in even trying to make this work with Emacs 18.
|
||||
;; this.
|
||||
|
||||
;; Unlike previous profilers, elp uses Emacs 19's built-in function
|
||||
;; current-time to return interval times. This obviates the need for
|
||||
|
|
|
|||
|
|
@ -96,9 +96,8 @@
|
|||
;; Internal Variables
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defvar generic-font-lock-keywords nil
|
||||
(defvar-local generic-font-lock-keywords nil
|
||||
"Keywords for `font-lock-defaults' in a generic mode.")
|
||||
(make-variable-buffer-local 'generic-font-lock-keywords)
|
||||
|
||||
;;;###autoload
|
||||
(defvar generic-mode-list nil
|
||||
|
|
|
|||
|
|
@ -775,7 +775,8 @@ or to switch back to an existing one."
|
|||
(setq-local find-tag-default-function 'lisp-find-tag-default)
|
||||
(setq-local comment-start-skip
|
||||
"\\(\\(^\\|[^\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *")
|
||||
(setq-local comment-end "|#")
|
||||
(setq-local comment-end-skip "[ \t]*\\(\\s>\\||#\\)")
|
||||
(setq-local font-lock-comment-end-skip "|#")
|
||||
(setq imenu-case-fold-search t))
|
||||
|
||||
(defun lisp-find-tag-default ()
|
||||
|
|
@ -1372,7 +1373,24 @@ and initial semicolons."
|
|||
(derived-mode-p 'emacs-lisp-mode))
|
||||
emacs-lisp-docstring-fill-column
|
||||
fill-column)))
|
||||
(fill-paragraph justify))
|
||||
(save-restriction
|
||||
(save-excursion
|
||||
(let ((ppss (syntax-ppss)))
|
||||
;; If we're in a string, then narrow (roughly) to that
|
||||
;; string before filling. This avoids filling Lisp
|
||||
;; statements that follow the string.
|
||||
(when (ppss-string-terminator ppss)
|
||||
(goto-char (ppss-comment-or-string-start ppss))
|
||||
(beginning-of-line)
|
||||
;; The string may be unterminated -- in that case, don't
|
||||
;; narrow.
|
||||
(when (ignore-errors
|
||||
(progn
|
||||
(forward-sexp 1)
|
||||
t))
|
||||
(narrow-to-region (ppss-comment-or-string-start ppss)
|
||||
(point))))
|
||||
(fill-paragraph justify)))))
|
||||
;; Never return nil.
|
||||
t))
|
||||
|
||||
|
|
|
|||
|
|
@ -182,8 +182,7 @@ if it exists."
|
|||
;; Check if `package-archive-upload-base' is valid.
|
||||
(when (or (not (stringp package-archive-upload-base))
|
||||
(equal package-archive-upload-base
|
||||
(car-safe
|
||||
(get 'package-archive-upload-base 'standard-value))))
|
||||
(custom--standard-value 'package-archive-upload-base)))
|
||||
(setq package-archive-upload-base
|
||||
(read-directory-name
|
||||
"Base directory for package archive: ")))
|
||||
|
|
|
|||
|
|
@ -135,7 +135,6 @@ PATTERN matches. PATTERN can take one of the forms:
|
|||
(pred (not FUN)) matches if FUN called on EXPVAL returns nil.
|
||||
(app FUN PAT) matches if FUN called on EXPVAL matches PAT.
|
||||
(guard BOOLEXP) matches if BOOLEXP evaluates to non-nil.
|
||||
(let PAT EXPR) matches if EXPR matches PAT.
|
||||
(and PAT...) matches if all the patterns match.
|
||||
(or PAT...) matches if any of the patterns matches.
|
||||
|
||||
|
|
@ -145,7 +144,7 @@ FUN in `pred' and `app' can take one of the forms:
|
|||
(F ARG1 .. ARGn)
|
||||
call F with ARG1..ARGn and EXPVAL as n+1'th argument
|
||||
|
||||
FUN, BOOLEXP, EXPR, and subsequent PAT can refer to variables
|
||||
FUN, BOOLEXP, and subsequent PAT can refer to variables
|
||||
bound earlier in the pattern by a SYMBOL pattern.
|
||||
|
||||
Additional patterns can be defined using `pcase-defmacro'.
|
||||
|
|
@ -426,7 +425,6 @@ of the elements of LIST is performed as if by `pcase-let'.
|
|||
(if (pcase--self-quoting-p pat) `',pat pat))
|
||||
((memq head '(pred guard quote)) pat)
|
||||
((memq head '(or and)) `(,head ,@(mapcar #'pcase--macroexpand (cdr pat))))
|
||||
((eq head 'let) `(let ,(pcase--macroexpand (cadr pat)) ,@(cddr pat)))
|
||||
((eq head 'app) `(app ,(nth 1 pat) ,(pcase--macroexpand (nth 2 pat))))
|
||||
(t
|
||||
(let* ((expander (pcase--get-macroexpander head))
|
||||
|
|
@ -888,18 +886,9 @@ Otherwise, it defers to REST which is a list of branches of the form
|
|||
(if (not (assq upat vars))
|
||||
(pcase--u1 matches code (cons (cons upat sym) vars) rest)
|
||||
;; Non-linear pattern. Turn it into an `eq' test.
|
||||
(pcase--u1 (cons `(match ,sym . (pred (eq ,(cdr (assq upat vars)))))
|
||||
(pcase--u1 (cons `(match ,sym . (pred (eql ,(cdr (assq upat vars)))))
|
||||
matches)
|
||||
code vars rest)))
|
||||
((eq (car-safe upat) 'let)
|
||||
;; A upat of the form (let VAR EXP).
|
||||
;; (pcase--u1 matches code
|
||||
;; (cons (cons (nth 1 upat) (nth 2 upat)) vars) rest)
|
||||
(macroexp-let2
|
||||
macroexp-copyable-p sym
|
||||
(pcase--eval (nth 2 upat) vars)
|
||||
(pcase--u1 (cons (pcase--match sym (nth 1 upat)) matches)
|
||||
code vars rest)))
|
||||
((eq (car-safe upat) 'app)
|
||||
;; A upat of the form (app FUN PAT)
|
||||
(pcase--mark-used sym)
|
||||
|
|
@ -1011,5 +1000,9 @@ The predicate is the logical-AND of:
|
|||
;; compounded values that are not `consp'
|
||||
(t (error "Unknown QPAT: %S" qpat))))
|
||||
|
||||
(pcase-defmacro let (pat expr)
|
||||
"Matches if EXPR matches PAT."
|
||||
`(app (lambda (_) ,expr) ,pat))
|
||||
|
||||
(provide 'pcase)
|
||||
;;; pcase.el ends here
|
||||
|
|
|
|||
|
|
@ -187,14 +187,14 @@ Set it to nil if you don't want limits here."
|
|||
(defvar reb-target-window nil
|
||||
"Window to which the RE is applied to.")
|
||||
|
||||
(defvar reb-regexp nil
|
||||
(defvar-local reb-regexp nil
|
||||
"Last regexp used by RE Builder.")
|
||||
|
||||
(defvar reb-regexp-src nil
|
||||
(defvar-local reb-regexp-src nil
|
||||
"Last regexp used by RE Builder before processing it.
|
||||
Except for Lisp syntax this is the same as `reb-regexp'.")
|
||||
|
||||
(defvar reb-overlays nil
|
||||
(defvar-local reb-overlays nil
|
||||
"List of overlays of the RE Builder.")
|
||||
|
||||
(defvar reb-window-config nil
|
||||
|
|
@ -212,10 +212,6 @@ Except for Lisp syntax this is the same as `reb-regexp'.")
|
|||
(defvar reb-valid-string ""
|
||||
"String in mode line showing validity of RE.")
|
||||
|
||||
(make-variable-buffer-local 'reb-overlays)
|
||||
(make-variable-buffer-local 'reb-regexp)
|
||||
(make-variable-buffer-local 'reb-regexp-src)
|
||||
|
||||
(defconst reb-buffer "*RE-Builder*"
|
||||
"Buffer to use for the RE Builder.")
|
||||
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ properties won't work properly.")
|
|||
|
||||
(defvar syntax-propertize-chunk-size 500)
|
||||
|
||||
(defvar syntax-propertize-extend-region-functions
|
||||
(defvar-local syntax-propertize-extend-region-functions
|
||||
'(syntax-propertize-wholelines)
|
||||
"Special hook run just before proceeding to propertize a region.
|
||||
This is used to allow major modes to help `syntax-propertize' find safe buffer
|
||||
|
|
@ -89,7 +89,6 @@ These functions are run in turn repeatedly until they all return nil.
|
|||
Put first the functions more likely to cause a change and cheaper to compute.")
|
||||
;; Mark it as a special hook which doesn't use any global setting
|
||||
;; (i.e. doesn't obey the element t in the buffer-local value).
|
||||
(make-variable-buffer-local 'syntax-propertize-extend-region-functions)
|
||||
|
||||
(cl-defstruct (ppss
|
||||
(:constructor make-ppss)
|
||||
|
|
|
|||
|
|
@ -634,9 +634,8 @@ a cons (TYPE . COLOR), then both properties are affected."
|
|||
|
||||
;;; Low-level Interface
|
||||
|
||||
(defvar cua-inhibit-cua-keys nil
|
||||
(defvar-local cua-inhibit-cua-keys nil
|
||||
"Buffer-local variable that may disable the CUA keymappings.")
|
||||
(make-variable-buffer-local 'cua-inhibit-cua-keys)
|
||||
|
||||
;;; Aux. variables
|
||||
|
||||
|
|
@ -644,9 +643,8 @@ a cons (TYPE . COLOR), then both properties are affected."
|
|||
;; checked in post-command hook to see if point was moved
|
||||
(defvar cua--buffer-and-point-before-command nil)
|
||||
|
||||
;; status string for mode line indications
|
||||
(defvar cua--status-string nil)
|
||||
(make-variable-buffer-local 'cua--status-string)
|
||||
(defvar-local cua--status-string nil
|
||||
"Status string for mode line indications.")
|
||||
|
||||
(defvar cua--debug nil)
|
||||
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
|
||||
(require 'rect)
|
||||
|
||||
(defvar cua--rectangle nil
|
||||
(defvar-local cua--rectangle nil
|
||||
"If non-nil, restrict current region to this rectangle.
|
||||
A cua-rectangle definition is a vector used for all actions in
|
||||
`cua-rectangle-mark-mode', of the form:
|
||||
|
|
@ -59,7 +59,6 @@ If VIRT is non-nil, virtual straight edges are enabled.
|
|||
|
||||
If SELECT is a regexp, only lines starting with that regexp are
|
||||
affected.")
|
||||
(make-variable-buffer-local 'cua--rectangle)
|
||||
|
||||
(defvar cua--last-rectangle nil
|
||||
"Most recent rectangle geometry.
|
||||
|
|
@ -85,9 +84,8 @@ See `cua--rectangle'.")
|
|||
;; "active " "sert on" " straig" " lines ")
|
||||
(defvar cua--last-killed-rectangle nil)
|
||||
|
||||
(defvar cua--rectangle-overlays nil
|
||||
(defvar-local cua--rectangle-overlays nil
|
||||
"List of overlays used to display current rectangle.")
|
||||
(make-variable-buffer-local 'cua--rectangle-overlays)
|
||||
(put 'cua--rectangle-overlays 'permanent-local t)
|
||||
|
||||
(defvar cua--overlay-keymap
|
||||
|
|
|
|||
|
|
@ -1624,7 +1624,7 @@ invokes the command before that, etc."
|
|||
;; The following two functions are used to set up undo properly.
|
||||
;; In VI, unlike Emacs, if you open a line, say, and add a bunch of lines,
|
||||
;; they are undone all at once.
|
||||
(viper-deflocalvar viper--undo-change-group-handle nil)
|
||||
(defvar-local viper--undo-change-group-handle nil)
|
||||
(put 'viper--undo-change-group-handle 'permanent-local t)
|
||||
|
||||
(defun viper-adjust-undo ()
|
||||
|
|
|
|||
|
|
@ -91,11 +91,9 @@ In all likelihood, you don't need to bother with this setting."
|
|||
"Define VAR as a buffer-local variable.
|
||||
DEFAULT-VALUE is the default value, and DOCUMENTATION is the
|
||||
docstring. The variable becomes buffer-local whenever set."
|
||||
(declare (indent defun))
|
||||
`(progn
|
||||
(defvar ,var ,default-value
|
||||
,(format "%s\n(buffer local)" documentation))
|
||||
(make-variable-buffer-local ',var)))
|
||||
(declare (indent defun)
|
||||
(obsolete defvar-local "28.1"))
|
||||
`(defvar-local ,var ,default-value ,documentation))
|
||||
|
||||
;; (viper-loop COUNT BODY) Execute BODY COUNT times.
|
||||
(defmacro viper-loop (count &rest body)
|
||||
|
|
@ -161,87 +159,87 @@ docstring. The variable becomes buffer-local whenever set."
|
|||
;;; Viper minor modes
|
||||
|
||||
;; Mode for vital things like \e, C-z.
|
||||
(viper-deflocalvar viper-vi-intercept-minor-mode nil)
|
||||
(defvar-local viper-vi-intercept-minor-mode nil)
|
||||
|
||||
(viper-deflocalvar viper-vi-basic-minor-mode nil
|
||||
(defvar-local viper-vi-basic-minor-mode nil
|
||||
"Viper's minor mode for Vi bindings.")
|
||||
|
||||
(viper-deflocalvar viper-vi-local-user-minor-mode nil
|
||||
(defvar-local viper-vi-local-user-minor-mode nil
|
||||
"Auxiliary minor mode for user-defined local bindings in Vi state.")
|
||||
|
||||
(viper-deflocalvar viper-vi-global-user-minor-mode nil
|
||||
(defvar-local viper-vi-global-user-minor-mode nil
|
||||
"Auxiliary minor mode for user-defined global bindings in Vi state.")
|
||||
|
||||
(viper-deflocalvar viper-vi-state-modifier-minor-mode nil
|
||||
(defvar-local viper-vi-state-modifier-minor-mode nil
|
||||
"Minor mode used to make major-mode-specific modification to Vi state.")
|
||||
|
||||
(viper-deflocalvar viper-vi-diehard-minor-mode nil
|
||||
(defvar-local viper-vi-diehard-minor-mode nil
|
||||
"This minor mode is in effect when the user wants Viper to be Vi.")
|
||||
|
||||
(viper-deflocalvar viper-vi-kbd-minor-mode nil
|
||||
(defvar-local viper-vi-kbd-minor-mode nil
|
||||
"Minor mode for Ex command macros in Vi state.
|
||||
The corresponding keymap stores key bindings of Vi macros defined with
|
||||
the Ex command :map.")
|
||||
|
||||
;; Mode for vital things like \e, C-z.
|
||||
(viper-deflocalvar viper-insert-intercept-minor-mode nil)
|
||||
(defvar-local viper-insert-intercept-minor-mode nil)
|
||||
|
||||
(viper-deflocalvar viper-insert-basic-minor-mode nil
|
||||
(defvar-local viper-insert-basic-minor-mode nil
|
||||
"Viper's minor mode for bindings in Insert mode.")
|
||||
|
||||
(viper-deflocalvar viper-insert-local-user-minor-mode nil
|
||||
(defvar-local viper-insert-local-user-minor-mode nil
|
||||
"Auxiliary minor mode for buffer-local user-defined bindings in Insert state.
|
||||
This is a way to overshadow normal Insert mode bindings locally to certain
|
||||
designated buffers.")
|
||||
|
||||
(viper-deflocalvar viper-insert-global-user-minor-mode nil
|
||||
(defvar-local viper-insert-global-user-minor-mode nil
|
||||
"Auxiliary minor mode for global user-defined bindings in Insert state.")
|
||||
|
||||
(viper-deflocalvar viper-insert-state-modifier-minor-mode nil
|
||||
(defvar-local viper-insert-state-modifier-minor-mode nil
|
||||
"Minor mode used to make major-mode-specific modification to Insert state.")
|
||||
|
||||
(viper-deflocalvar viper-insert-diehard-minor-mode nil
|
||||
(defvar-local viper-insert-diehard-minor-mode nil
|
||||
"Minor mode that simulates Vi very closely.
|
||||
Not recommended, except for the novice user.")
|
||||
|
||||
(viper-deflocalvar viper-insert-kbd-minor-mode nil
|
||||
(defvar-local viper-insert-kbd-minor-mode nil
|
||||
"Minor mode for Ex command macros Insert state.
|
||||
The corresponding keymap stores key bindings of Vi macros defined with
|
||||
the Ex command :map!.")
|
||||
|
||||
(viper-deflocalvar viper-replace-minor-mode nil
|
||||
(defvar-local viper-replace-minor-mode nil
|
||||
"Minor mode in effect in replace state (cw, C, and the like commands).")
|
||||
|
||||
;; Mode for vital things like \C-z and \C-x) This is set to t, when viper-mode
|
||||
;; is invoked. So, any new buffer will have C-z defined as switch to Vi,
|
||||
;; unless we switched states in this buffer
|
||||
(viper-deflocalvar viper-emacs-intercept-minor-mode nil)
|
||||
(defvar-local viper-emacs-intercept-minor-mode nil)
|
||||
|
||||
(viper-deflocalvar viper-emacs-local-user-minor-mode nil
|
||||
(defvar-local viper-emacs-local-user-minor-mode nil
|
||||
"Minor mode for local user bindings effective in Emacs state.
|
||||
Users can use it to override Emacs bindings when Viper is in its Emacs
|
||||
state.")
|
||||
|
||||
(viper-deflocalvar viper-emacs-global-user-minor-mode nil
|
||||
(defvar-local viper-emacs-global-user-minor-mode nil
|
||||
"Minor mode for global user bindings in effect in Emacs state.
|
||||
Users can use it to override Emacs bindings when Viper is in its Emacs
|
||||
state.")
|
||||
|
||||
(viper-deflocalvar viper-emacs-kbd-minor-mode nil
|
||||
(defvar-local viper-emacs-kbd-minor-mode nil
|
||||
"Minor mode for Vi style macros in Emacs state.
|
||||
The corresponding keymap stores key bindings of Vi macros defined with
|
||||
`viper-record-kbd-macro' command. There is no Ex-level command to do this
|
||||
interactively.")
|
||||
|
||||
(viper-deflocalvar viper-emacs-state-modifier-minor-mode nil
|
||||
(defvar-local viper-emacs-state-modifier-minor-mode nil
|
||||
"Minor mode used to make major-mode-specific modification to Emacs state.
|
||||
For instance, a Vi purist may want to bind `dd' in Dired mode to a function
|
||||
that deletes a file.")
|
||||
|
||||
(viper-deflocalvar viper-vi-minibuffer-minor-mode nil
|
||||
(defvar-local viper-vi-minibuffer-minor-mode nil
|
||||
"Minor mode that forces Vi-style when the Minibuffer is in Vi state.")
|
||||
|
||||
(viper-deflocalvar viper-insert-minibuffer-minor-mode nil
|
||||
(defvar-local viper-insert-minibuffer-minor-mode nil
|
||||
"Minor mode that forces Vi-style when the Minibuffer is in Insert state.")
|
||||
|
||||
|
||||
|
|
@ -284,7 +282,7 @@ Use `\\[viper-set-expert-level]' to change this.")
|
|||
;; If non-nil, ISO accents will be turned on in insert/replace emacs states and
|
||||
;; turned off in vi-state. For some users, this behavior may be too
|
||||
;; primitive. In this case, use insert/emacs/vi state hooks.
|
||||
(viper-deflocalvar viper-automatic-iso-accents nil "")
|
||||
(defvar-local viper-automatic-iso-accents nil "")
|
||||
;; Set iso-accents-mode to ARG. Check if it is bound first
|
||||
(defsubst viper-set-iso-accents-mode (arg)
|
||||
(if (boundp 'iso-accents-mode)
|
||||
|
|
@ -294,7 +292,7 @@ Use `\\[viper-set-expert-level]' to change this.")
|
|||
;; Don't change this!
|
||||
(defvar viper-mule-hook-flag t)
|
||||
;; If non-nil, the default intl. input method is turned on.
|
||||
(viper-deflocalvar viper-special-input-method nil "")
|
||||
(defvar-local viper-special-input-method nil "")
|
||||
|
||||
;; viper hook to run on input-method activation
|
||||
(defun viper-activate-input-method-action ()
|
||||
|
|
@ -357,7 +355,7 @@ it better fits your working style."
|
|||
;; Replace mode and changing text
|
||||
|
||||
;; Hack used to pass global states around for short period of time
|
||||
(viper-deflocalvar viper-intermediate-command nil "")
|
||||
(defvar-local viper-intermediate-command nil "")
|
||||
|
||||
;; This is used to pass the right Vi command key sequence to
|
||||
;; viper-set-destructive-command whenever (this-command-keys) doesn't give the
|
||||
|
|
@ -367,7 +365,7 @@ it better fits your working style."
|
|||
(defconst viper-this-command-keys nil)
|
||||
|
||||
;; Indicates that the current destructive command has started in replace mode.
|
||||
(viper-deflocalvar viper-began-as-replace nil "")
|
||||
(defvar-local viper-began-as-replace nil "")
|
||||
|
||||
(defcustom viper-allow-multiline-replace-regions t
|
||||
"If non-nil, Viper will allow multi-line replace regions.
|
||||
|
|
@ -398,7 +396,7 @@ delete the text being replaced, as in standard Vi."
|
|||
;; internal var, used to remember the default cursor color of emacs frames
|
||||
(defvar viper-vi-state-cursor-color nil)
|
||||
|
||||
(viper-deflocalvar viper-replace-overlay nil "")
|
||||
(defvar-local viper-replace-overlay nil "")
|
||||
(put 'viper-replace-overlay 'permanent-local t)
|
||||
|
||||
(defcustom viper-replace-region-end-delimiter "$"
|
||||
|
|
@ -430,24 +428,24 @@ color displays. By default, the delimiters are used only on TTYs."
|
|||
;; `viper-move-marker-locally'
|
||||
;;
|
||||
;; Remember the last position inside the replace region.
|
||||
(viper-deflocalvar viper-last-posn-in-replace-region nil)
|
||||
(defvar-local viper-last-posn-in-replace-region nil)
|
||||
;; Remember the last position while inserting
|
||||
(viper-deflocalvar viper-last-posn-while-in-insert-state nil)
|
||||
(defvar-local viper-last-posn-while-in-insert-state nil)
|
||||
(put 'viper-last-posn-in-replace-region 'permanent-local t)
|
||||
(put 'viper-last-posn-while-in-insert-state 'permanent-local t)
|
||||
|
||||
(viper-deflocalvar viper-sitting-in-replace nil "")
|
||||
(defvar-local viper-sitting-in-replace nil "")
|
||||
(put 'viper-sitting-in-replace 'permanent-local t)
|
||||
|
||||
;; Remember the number of characters that have to be deleted in replace
|
||||
;; mode to compensate for the inserted characters.
|
||||
(viper-deflocalvar viper-replace-chars-to-delete 0 "")
|
||||
(defvar-local viper-replace-chars-to-delete 0 "")
|
||||
;; This variable is used internally by the before/after changed functions to
|
||||
;; determine how many chars were deleted by the change. This can't be
|
||||
;; determined inside after-change-functions because those get the length of the
|
||||
;; deleted region, not the number of chars deleted (which are two different
|
||||
;; things under MULE).
|
||||
(viper-deflocalvar viper-replace-region-chars-deleted 0 "")
|
||||
(defvar-local viper-replace-region-chars-deleted 0 "")
|
||||
|
||||
;; Insertion ring and command ring
|
||||
(defcustom viper-insertion-ring-size 14
|
||||
|
|
@ -490,28 +488,28 @@ will make it hard to use Vi-style timeout macros."
|
|||
;; Modes and related variables
|
||||
|
||||
;; Current mode. One of: `emacs-state', `vi-state', `insert-state'
|
||||
(viper-deflocalvar viper-current-state 'emacs-state)
|
||||
(defvar-local viper-current-state 'emacs-state)
|
||||
|
||||
|
||||
;; Autoindent in insert
|
||||
|
||||
;; Variable that keeps track of whether C-t has been pressed.
|
||||
(viper-deflocalvar viper-cted nil "")
|
||||
(defvar-local viper-cted nil "")
|
||||
|
||||
;; Preserve the indent value, used by C-d in insert mode.
|
||||
(viper-deflocalvar viper-current-indent 0)
|
||||
(defvar-local viper-current-indent 0)
|
||||
|
||||
;; Whether to preserve the indent, used by C-d in insert mode.
|
||||
(viper-deflocalvar viper-preserve-indent nil)
|
||||
(defvar-local viper-preserve-indent nil)
|
||||
|
||||
(viper-deflocalvar viper-auto-indent nil "")
|
||||
(defvar-local viper-auto-indent nil "")
|
||||
(defcustom viper-auto-indent nil
|
||||
"Enable autoindent, if t.
|
||||
This is a buffer-local variable."
|
||||
:type 'boolean
|
||||
:group 'viper)
|
||||
|
||||
(viper-deflocalvar viper-electric-mode t "")
|
||||
(defvar-local viper-electric-mode t "")
|
||||
(defcustom viper-electric-mode t
|
||||
"If t, electrify Viper.
|
||||
Currently, this only electrifies auto-indentation, making it appropriate to the
|
||||
|
|
@ -541,7 +539,7 @@ to a new place after repeating previous Vi command."
|
|||
|
||||
;; Remember insert point as a marker. This is a local marker that must be
|
||||
;; initialized to nil and moved with `viper-move-marker-locally'.
|
||||
(viper-deflocalvar viper-insert-point nil)
|
||||
(defvar-local viper-insert-point nil)
|
||||
(put 'viper-insert-point 'permanent-local t)
|
||||
|
||||
;; This remembers the point before dabbrev-expand was called.
|
||||
|
|
@ -562,7 +560,7 @@ to a new place after repeating previous Vi command."
|
|||
;; problem. However, the same trick can be used if such a command is
|
||||
;; discovered later.
|
||||
;;
|
||||
(viper-deflocalvar viper-pre-command-point nil)
|
||||
(defvar-local viper-pre-command-point nil)
|
||||
(put 'viper-pre-command-point 'permanent-local t) ; this is probably an overkill
|
||||
|
||||
;; This is used for saving inserted text.
|
||||
|
|
@ -573,7 +571,7 @@ to a new place after repeating previous Vi command."
|
|||
|
||||
;; Remember com point as a marker.
|
||||
;; This is a local marker. Should be moved with `viper-move-marker-locally'
|
||||
(viper-deflocalvar viper-com-point nil)
|
||||
(defvar-local viper-com-point nil)
|
||||
|
||||
;; If non-nil, the value is a list (M-COM VAL COM REG inserted-text cmd-keys)
|
||||
;; It is used to re-execute last destructive command.
|
||||
|
|
@ -660,14 +658,14 @@ negative number."
|
|||
:type 'boolean
|
||||
:group 'viper)
|
||||
|
||||
(viper-deflocalvar viper-ex-style-motion t "")
|
||||
(defvar-local viper-ex-style-motion t "")
|
||||
(defcustom viper-ex-style-motion t
|
||||
"If t, the commands l,h do not cross lines, etc (Ex-style).
|
||||
If nil, these commands cross line boundaries."
|
||||
:type 'boolean
|
||||
:group 'viper)
|
||||
|
||||
(viper-deflocalvar viper-ex-style-editing t "")
|
||||
(defvar-local viper-ex-style-editing t "")
|
||||
(defcustom viper-ex-style-editing t
|
||||
"If t, Ex-style behavior while editing in Vi command and insert states.
|
||||
`Backspace' and `Delete' don't cross line boundaries in insert.
|
||||
|
|
@ -679,14 +677,14 @@ If nil, the above commands can work across lines."
|
|||
:type 'boolean
|
||||
:group 'viper)
|
||||
|
||||
(viper-deflocalvar viper-ESC-moves-cursor-back viper-ex-style-editing "")
|
||||
(defvar-local viper-ESC-moves-cursor-back viper-ex-style-editing "")
|
||||
(defcustom viper-ESC-moves-cursor-back nil
|
||||
"If t, ESC moves cursor back when changing from insert to vi state.
|
||||
If nil, the cursor stays where it was when ESC was hit."
|
||||
:type 'boolean
|
||||
:group 'viper)
|
||||
|
||||
(viper-deflocalvar viper-delete-backwards-in-replace nil "")
|
||||
(defvar-local viper-delete-backwards-in-replace nil "")
|
||||
(defcustom viper-delete-backwards-in-replace nil
|
||||
"If t, DEL key will delete characters while moving the cursor backwards.
|
||||
If nil, the cursor will move backwards without deleting anything."
|
||||
|
|
@ -704,7 +702,7 @@ If nil, the cursor will move backwards without deleting anything."
|
|||
:tag "Search Wraps Around"
|
||||
:group 'viper-search)
|
||||
|
||||
(viper-deflocalvar viper-related-files-and-buffers-ring nil "")
|
||||
(defvar-local viper-related-files-and-buffers-ring nil "")
|
||||
(defcustom viper-related-files-and-buffers-ring nil
|
||||
"List of file and buffer names to consider related to the current buffer.
|
||||
Related buffers can be cycled through via :R and :P commands."
|
||||
|
|
@ -713,12 +711,12 @@ Related buffers can be cycled through via :R and :P commands."
|
|||
(put 'viper-related-files-and-buffers-ring 'permanent-local t)
|
||||
|
||||
;; Used to find out if we are done with searching the current buffer.
|
||||
(viper-deflocalvar viper-local-search-start-marker nil)
|
||||
(defvar-local viper-local-search-start-marker nil)
|
||||
;; As above, but global
|
||||
(defvar viper-search-start-marker (make-marker))
|
||||
|
||||
;; the search overlay
|
||||
(viper-deflocalvar viper-search-overlay nil)
|
||||
(defvar-local viper-search-overlay nil)
|
||||
|
||||
|
||||
(defvar viper-heading-start
|
||||
|
|
@ -745,9 +743,9 @@ Related buffers can be cycled through via :R and :P commands."
|
|||
;; inside the lines.
|
||||
|
||||
;; Remembers position of the last jump done using ``'.
|
||||
(viper-deflocalvar viper-last-jump nil)
|
||||
(defvar-local viper-last-jump nil)
|
||||
;; Remembers position of the last jump done using `''.
|
||||
(viper-deflocalvar viper-last-jump-ignore 0)
|
||||
(defvar-local viper-last-jump-ignore 0)
|
||||
|
||||
;; History variables
|
||||
|
||||
|
|
@ -841,7 +839,7 @@ to customize the actual face object `viper-minibuffer-vi'
|
|||
this variable represents.")
|
||||
|
||||
;; the current face to be used in the minibuffer
|
||||
(viper-deflocalvar
|
||||
(defvar-local
|
||||
viper-minibuffer-current-face viper-minibuffer-emacs-face "")
|
||||
|
||||
|
||||
|
|
@ -877,7 +875,7 @@ Should be set in `viper-custom-file-name'."
|
|||
:group 'viper)
|
||||
|
||||
;; overlay used in the minibuffer to indicate which state it is in
|
||||
(viper-deflocalvar viper-minibuffer-overlay nil)
|
||||
(defvar-local viper-minibuffer-overlay nil)
|
||||
(put 'viper-minibuffer-overlay 'permanent-local t)
|
||||
|
||||
;; Hook, specific to Viper, which is run just *before* exiting the minibuffer.
|
||||
|
|
@ -946,9 +944,4 @@ on a dumb terminal."
|
|||
|
||||
(provide 'viper-init)
|
||||
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
;;; viper-init.el ends here
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ major mode in effect."
|
|||
(defvar viper-insert-intercept-map (make-sparse-keymap))
|
||||
(defvar viper-emacs-intercept-map (make-sparse-keymap))
|
||||
|
||||
(viper-deflocalvar viper-vi-local-user-map (make-sparse-keymap)
|
||||
(defvar-local viper-vi-local-user-map (make-sparse-keymap)
|
||||
"Keymap for user-defined local bindings.
|
||||
Useful for changing bindings such as ZZ in certain major modes.
|
||||
For instance, in letter-mode, one may want to bind ZZ to
|
||||
|
|
@ -106,7 +106,7 @@ This map is global, shared by all buffers.")
|
|||
This happens when viper-expert-level is 1 or 2. See viper-set-expert-level.")
|
||||
|
||||
|
||||
(viper-deflocalvar viper-insert-local-user-map (make-sparse-keymap)
|
||||
(defvar-local viper-insert-local-user-map (make-sparse-keymap)
|
||||
"Auxiliary map for per-buffer user-defined keybindings in Insert state.")
|
||||
(put 'viper-insert-local-user-map 'permanent-local t)
|
||||
|
||||
|
|
@ -133,7 +133,7 @@ viper-insert-basic-map. Not recommended, except for novice users.")
|
|||
(defvar viper-emacs-kbd-map (make-sparse-keymap)
|
||||
"This keymap keeps Vi-style kbd macros for Emacs mode.")
|
||||
|
||||
(viper-deflocalvar viper-emacs-local-user-map (make-sparse-keymap)
|
||||
(defvar-local viper-emacs-local-user-map (make-sparse-keymap)
|
||||
"Auxiliary map for local user-defined bindings in Emacs state.")
|
||||
(put 'viper-emacs-local-user-map 'permanent-local t)
|
||||
|
||||
|
|
@ -209,22 +209,22 @@ In insert mode, this key also functions as Meta."
|
|||
(defvar viper-emacs-state-modifier-alist nil)
|
||||
|
||||
;; The list of viper keymaps. Set by viper-normalize-minor-mode-map-alist
|
||||
(viper-deflocalvar viper--key-maps nil)
|
||||
(viper-deflocalvar viper--intercept-key-maps nil)
|
||||
(defvar-local viper--key-maps nil)
|
||||
(defvar-local viper--intercept-key-maps nil)
|
||||
|
||||
;; Tells viper-add-local-keys to create a new viper-vi-local-user-map for new
|
||||
;; buffers. Not a user option.
|
||||
(viper-deflocalvar viper-need-new-vi-local-map t "")
|
||||
(defvar-local viper-need-new-vi-local-map t "")
|
||||
(put 'viper-need-new-vi-local-map 'permanent-local t)
|
||||
|
||||
;; Tells viper-add-local-keys to create a new viper-insert-local-user-map for
|
||||
;; new buffers. Not a user option.
|
||||
(viper-deflocalvar viper-need-new-insert-local-map t "")
|
||||
(defvar-local viper-need-new-insert-local-map t "")
|
||||
(put 'viper-need-new-insert-local-map 'permanent-local t)
|
||||
|
||||
;; Tells viper-add-local-keys to create a new viper-emacs-local-user-map for
|
||||
;; new buffers. Not a user option.
|
||||
(viper-deflocalvar viper-need-new-emacs-local-map t "")
|
||||
(defvar-local viper-need-new-emacs-local-map t "")
|
||||
(put 'viper-need-new-emacs-local-map 'permanent-local t)
|
||||
|
||||
|
||||
|
|
@ -654,10 +654,4 @@ form ((key . function) (key . function) ... )."
|
|||
|
||||
(provide 'viper-keym)
|
||||
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
|
||||
;;; viper-keym.el ends here
|
||||
|
|
|
|||
|
|
@ -74,10 +74,10 @@ considered related."
|
|||
:group 'viper-mouse)
|
||||
|
||||
;; Local variable used to toggle wraparound search on click.
|
||||
(viper-deflocalvar viper-mouse-click-search-noerror t)
|
||||
(defvar-local viper-mouse-click-search-noerror t)
|
||||
|
||||
;; Local variable used to delimit search after wraparound.
|
||||
(viper-deflocalvar viper-mouse-click-search-limit nil)
|
||||
(defvar-local viper-mouse-click-search-limit nil)
|
||||
|
||||
;; remembers prefix argument to pass along to commands invoked by second
|
||||
;; click.
|
||||
|
|
@ -592,11 +592,4 @@ This buffer may be different from the one where the click occurred."
|
|||
:set 'viper-reset-mouse-insert-key
|
||||
:group 'viper-mouse)
|
||||
|
||||
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
|
||||
;;; viper-mous.el ends here
|
||||
|
|
|
|||
|
|
@ -1085,10 +1085,10 @@ the `Local variables' section of a file."
|
|||
;; These are characters that are not to be considered as parts of a word in
|
||||
;; Viper.
|
||||
;; Set each time state changes and at loading time
|
||||
(viper-deflocalvar viper-non-word-characters nil)
|
||||
(defvar-local viper-non-word-characters nil)
|
||||
|
||||
;; must be buffer-local
|
||||
(viper-deflocalvar viper-ALPHA-char-class "w"
|
||||
(defvar-local viper-ALPHA-char-class "w"
|
||||
"String of syntax classes characterizing Viper's alphanumeric symbols.
|
||||
In addition, the symbol `_' may be considered alphanumeric if
|
||||
`viper-syntax-preference' is `strict-vi' or `reformed-vi'.")
|
||||
|
|
@ -1375,10 +1375,4 @@ This option is appropriate if you like Emacs-style words."
|
|||
(setq i (1+ i) start (1+ start)))
|
||||
res))))))
|
||||
|
||||
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
;;; viper-util.el ends here
|
||||
|
|
|
|||
|
|
@ -1256,9 +1256,4 @@ These two lines must come in the order given."))
|
|||
|
||||
(provide 'viper)
|
||||
|
||||
|
||||
;; Local Variables:
|
||||
;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
|
||||
;; End:
|
||||
|
||||
;;; viper.el ends here
|
||||
|
|
|
|||
22
lisp/epg.el
22
lisp/epg.el
|
|
@ -332,7 +332,6 @@ callback data (if any)."
|
|||
(cl-defstruct (epg-key
|
||||
(:constructor nil)
|
||||
(:constructor epg-make-key (owner-trust))
|
||||
(:copier nil)
|
||||
(:predicate nil))
|
||||
(owner-trust nil :read-only t)
|
||||
sub-key-list user-id-list)
|
||||
|
|
@ -1383,11 +1382,22 @@ NAME is either a string or a list of strings."
|
|||
keys))
|
||||
|
||||
(defun epg--filter-revoked-keys (keys)
|
||||
(seq-remove (lambda (key)
|
||||
(seq-find (lambda (user)
|
||||
(eq (epg-user-id-validity user) 'revoked))
|
||||
(epg-key-user-id-list key)))
|
||||
keys))
|
||||
(mapcar
|
||||
(lambda (key)
|
||||
;; We have something revoked, so copy the key and remove the
|
||||
;; revoked bits.
|
||||
(if (seq-find (lambda (user)
|
||||
(eq (epg-user-id-validity user) 'revoked))
|
||||
(epg-key-user-id-list key))
|
||||
(let ((copy (copy-epg-key key)))
|
||||
(setf (epg-key-user-id-list copy)
|
||||
(seq-remove (lambda (user)
|
||||
(eq (epg-user-id-validity user) 'revoked))
|
||||
(epg-key-user-id-list copy)))
|
||||
copy)
|
||||
;; Nothing to delete; return the key.
|
||||
key))
|
||||
keys))
|
||||
|
||||
(defun epg--args-from-sig-notations (notations)
|
||||
(apply #'nconc
|
||||
|
|
|
|||
|
|
@ -120,38 +120,31 @@
|
|||
|
||||
;;; User data
|
||||
|
||||
(defvar erc-server-current-nick nil
|
||||
(defvar-local erc-server-current-nick nil
|
||||
"Nickname on the current server.
|
||||
Use `erc-current-nick' to access this.")
|
||||
(make-variable-buffer-local 'erc-server-current-nick)
|
||||
|
||||
;;; Server attributes
|
||||
|
||||
(defvar erc-server-process nil
|
||||
(defvar-local erc-server-process nil
|
||||
"The process object of the corresponding server connection.")
|
||||
(make-variable-buffer-local 'erc-server-process)
|
||||
|
||||
(defvar erc-session-server nil
|
||||
(defvar-local erc-session-server nil
|
||||
"The server name used to connect to for this session.")
|
||||
(make-variable-buffer-local 'erc-session-server)
|
||||
|
||||
(defvar erc-session-connector nil
|
||||
(defvar-local erc-session-connector nil
|
||||
"The function used to connect to this session (nil for the default).")
|
||||
(make-variable-buffer-local 'erc-session-connector)
|
||||
|
||||
(defvar erc-session-port nil
|
||||
(defvar-local erc-session-port nil
|
||||
"The port used to connect to.")
|
||||
(make-variable-buffer-local 'erc-session-port)
|
||||
|
||||
(defvar erc-server-announced-name nil
|
||||
(defvar-local erc-server-announced-name nil
|
||||
"The name the server announced to use.")
|
||||
(make-variable-buffer-local 'erc-server-announced-name)
|
||||
|
||||
(defvar erc-server-version nil
|
||||
(defvar-local erc-server-version nil
|
||||
"The name and version of the server's ircd.")
|
||||
(make-variable-buffer-local 'erc-server-version)
|
||||
|
||||
(defvar erc-server-parameters nil
|
||||
(defvar-local erc-server-parameters nil
|
||||
"Alist listing the supported server parameters.
|
||||
|
||||
This is only set if the server sends 005 messages saying what is
|
||||
|
|
@ -177,86 +170,70 @@ RFC2812 - server supports RFC 2812 features
|
|||
SILENCE=10 - supports the SILENCE command, maximum allowed number of entries
|
||||
TOPICLEN=160 - maximum allowed topic length
|
||||
WALLCHOPS - supports sending messages to all operators in a channel")
|
||||
(make-variable-buffer-local 'erc-server-parameters)
|
||||
|
||||
;;; Server and connection state
|
||||
|
||||
(defvar erc-server-ping-timer-alist nil
|
||||
"Mapping of server buffers to their specific ping timer.")
|
||||
|
||||
(defvar erc-server-connected nil
|
||||
(defvar-local erc-server-connected nil
|
||||
"Non-nil if the current buffer has been used by ERC to establish
|
||||
an IRC connection.
|
||||
|
||||
If you wish to determine whether an IRC connection is currently
|
||||
active, use the `erc-server-process-alive' function instead.")
|
||||
(make-variable-buffer-local 'erc-server-connected)
|
||||
|
||||
(defvar erc-server-reconnect-count 0
|
||||
(defvar-local erc-server-reconnect-count 0
|
||||
"Number of times we have failed to reconnect to the current server.")
|
||||
(make-variable-buffer-local 'erc-server-reconnect-count)
|
||||
|
||||
(defvar erc-server-quitting nil
|
||||
(defvar-local erc-server-quitting nil
|
||||
"Non-nil if the user requests a quit.")
|
||||
(make-variable-buffer-local 'erc-server-quitting)
|
||||
|
||||
(defvar erc-server-reconnecting nil
|
||||
(defvar-local erc-server-reconnecting nil
|
||||
"Non-nil if the user requests an explicit reconnect, and the
|
||||
current IRC process is still alive.")
|
||||
(make-variable-buffer-local 'erc-server-reconnecting)
|
||||
|
||||
(defvar erc-server-timed-out nil
|
||||
(defvar-local erc-server-timed-out nil
|
||||
"Non-nil if the IRC server failed to respond to a ping.")
|
||||
(make-variable-buffer-local 'erc-server-timed-out)
|
||||
|
||||
(defvar erc-server-banned nil
|
||||
(defvar-local erc-server-banned nil
|
||||
"Non-nil if the user is denied access because of a server ban.")
|
||||
(make-variable-buffer-local 'erc-server-banned)
|
||||
|
||||
(defvar erc-server-error-occurred nil
|
||||
(defvar-local erc-server-error-occurred nil
|
||||
"Non-nil if the user triggers some server error.")
|
||||
(make-variable-buffer-local 'erc-server-error-occurred)
|
||||
|
||||
(defvar erc-server-lines-sent nil
|
||||
(defvar-local erc-server-lines-sent nil
|
||||
"Line counter.")
|
||||
(make-variable-buffer-local 'erc-server-lines-sent)
|
||||
|
||||
(defvar erc-server-last-peers '(nil . nil)
|
||||
(defvar-local erc-server-last-peers '(nil . nil)
|
||||
"Last peers used, both sender and receiver.
|
||||
Those are used for /MSG destination shortcuts.")
|
||||
(make-variable-buffer-local 'erc-server-last-peers)
|
||||
|
||||
(defvar erc-server-last-sent-time nil
|
||||
(defvar-local erc-server-last-sent-time nil
|
||||
"Time the message was sent.
|
||||
This is useful for flood protection.")
|
||||
(make-variable-buffer-local 'erc-server-last-sent-time)
|
||||
|
||||
(defvar erc-server-last-ping-time nil
|
||||
(defvar-local erc-server-last-ping-time nil
|
||||
"Time the last ping was sent.
|
||||
This is useful for flood protection.")
|
||||
(make-variable-buffer-local 'erc-server-last-ping-time)
|
||||
|
||||
(defvar erc-server-last-received-time nil
|
||||
(defvar-local erc-server-last-received-time nil
|
||||
"Time the last message was received from the server.
|
||||
This is useful for detecting hung connections.")
|
||||
(make-variable-buffer-local 'erc-server-last-received-time)
|
||||
|
||||
(defvar erc-server-lag nil
|
||||
(defvar-local erc-server-lag nil
|
||||
"Calculated server lag time in seconds.
|
||||
This variable is only set in a server buffer.")
|
||||
(make-variable-buffer-local 'erc-server-lag)
|
||||
|
||||
(defvar erc-server-filter-data nil
|
||||
(defvar-local erc-server-filter-data nil
|
||||
"The data that arrived from the server
|
||||
but has not been processed yet.")
|
||||
(make-variable-buffer-local 'erc-server-filter-data)
|
||||
|
||||
(defvar erc-server-duplicates (make-hash-table :test 'equal)
|
||||
(defvar-local erc-server-duplicates (make-hash-table :test 'equal)
|
||||
"Internal variable used to track duplicate messages.")
|
||||
(make-variable-buffer-local 'erc-server-duplicates)
|
||||
|
||||
;; From Circe
|
||||
(defvar erc-server-processing-p nil
|
||||
(defvar-local erc-server-processing-p nil
|
||||
"Non-nil when we're currently processing a message.
|
||||
|
||||
When ERC receives a private message, it sets up a new buffer for
|
||||
|
|
@ -267,23 +244,19 @@ network exceptions. So, if someone sends you two messages
|
|||
quickly after each other, ispell is started for the first, but
|
||||
might take long enough for the second message to be processed
|
||||
first.")
|
||||
(make-variable-buffer-local 'erc-server-processing-p)
|
||||
|
||||
(defvar erc-server-flood-last-message 0
|
||||
(defvar-local erc-server-flood-last-message 0
|
||||
"When we sent the last message.
|
||||
See `erc-server-flood-margin' for an explanation of the flood
|
||||
protection algorithm.")
|
||||
(make-variable-buffer-local 'erc-server-flood-last-message)
|
||||
|
||||
(defvar erc-server-flood-queue nil
|
||||
(defvar-local erc-server-flood-queue nil
|
||||
"The queue of messages waiting to be sent to the server.
|
||||
See `erc-server-flood-margin' for an explanation of the flood
|
||||
protection algorithm.")
|
||||
(make-variable-buffer-local 'erc-server-flood-queue)
|
||||
|
||||
(defvar erc-server-flood-timer nil
|
||||
(defvar-local erc-server-flood-timer nil
|
||||
"The timer to resume sending.")
|
||||
(make-variable-buffer-local 'erc-server-flood-timer)
|
||||
|
||||
;;; IRC protocol and misc options
|
||||
|
||||
|
|
@ -453,9 +426,8 @@ If this is set to nil, never try to reconnect."
|
|||
:type '(choice (const :tag "Disabled" nil)
|
||||
(integer :tag "Seconds")))
|
||||
|
||||
(defvar erc-server-ping-handler nil
|
||||
(defvar-local erc-server-ping-handler nil
|
||||
"This variable holds the periodic ping timer.")
|
||||
(make-variable-buffer-local 'erc-server-ping-handler)
|
||||
|
||||
;;;; Helper functions
|
||||
|
||||
|
|
|
|||
|
|
@ -113,13 +113,11 @@ character not found in IRC nicknames to avoid confusion."
|
|||
|
||||
;;; Variables:
|
||||
|
||||
(defvar erc-capab-identify-activated nil
|
||||
(defvar-local erc-capab-identify-activated nil
|
||||
"CAPAB IDENTIFY-MSG has been activated.")
|
||||
(make-variable-buffer-local 'erc-capab-identify-activated)
|
||||
|
||||
(defvar erc-capab-identify-sent nil
|
||||
(defvar-local erc-capab-identify-sent nil
|
||||
"CAPAB IDENTIFY-MSG and IDENTIFY-CTCP messages have been sent.")
|
||||
(make-variable-buffer-local 'erc-capab-identify-sent)
|
||||
|
||||
;;; Functions:
|
||||
|
||||
|
|
|
|||
|
|
@ -538,8 +538,7 @@ PROC is the server process."
|
|||
nil '(notice error) 'active
|
||||
'dcc-get-notfound ?n nick ?f filename))))
|
||||
|
||||
(defvar erc-dcc-byte-count nil)
|
||||
(make-variable-buffer-local 'erc-dcc-byte-count)
|
||||
(defvar-local erc-dcc-byte-count nil)
|
||||
|
||||
(defun erc-dcc-do-LIST-command (proc)
|
||||
"This is the handler for the /dcc list command.
|
||||
|
|
@ -751,9 +750,8 @@ the matching regexp, or nil if none found."
|
|||
'dcc-malformed ?n nick ?u login ?h host ?q query)))))
|
||||
|
||||
|
||||
(defvar erc-dcc-entry-data nil
|
||||
(defvar-local erc-dcc-entry-data nil
|
||||
"Holds the `erc-dcc-list' entry for this DCC connection.")
|
||||
(make-variable-buffer-local 'erc-dcc-entry-data)
|
||||
|
||||
;;; SEND handling
|
||||
|
||||
|
|
@ -905,8 +903,7 @@ other client."
|
|||
:group 'erc-dcc
|
||||
:type 'integer)
|
||||
|
||||
(defvar erc-dcc-file-name nil)
|
||||
(make-variable-buffer-local 'erc-dcc-file-name)
|
||||
(defvar-local erc-dcc-file-name nil)
|
||||
|
||||
(defun erc-dcc-get-file (entry file parent-proc)
|
||||
"Set up a transfer from the remote client to the local over a TCP connection.
|
||||
|
|
|
|||
|
|
@ -61,9 +61,8 @@ The alist's format is as follows:
|
|||
"Alist of actions to take on NOTICEs from EZBounce.")
|
||||
|
||||
|
||||
(defvar erc-ezb-session-list '()
|
||||
(defvar-local erc-ezb-session-list '()
|
||||
"List of detached EZBounce sessions.")
|
||||
(make-variable-buffer-local 'erc-ezb-session-list)
|
||||
|
||||
(defvar erc-ezb-inside-session-listing nil
|
||||
"Indicate whether current notices are expected to be EZB session listings.")
|
||||
|
|
|
|||
|
|
@ -105,8 +105,7 @@ servers, presumably in the same domain."
|
|||
:group 'erc-autojoin
|
||||
:type 'boolean)
|
||||
|
||||
(defvar erc--autojoin-timer nil)
|
||||
(make-variable-buffer-local 'erc--autojoin-timer)
|
||||
(defvar-local erc--autojoin-timer nil)
|
||||
|
||||
(defun erc-autojoin-channels-delayed (server nick buffer)
|
||||
"Attempt to autojoin channels.
|
||||
|
|
|
|||
|
|
@ -82,12 +82,11 @@ Args: PROC is the process the netjoin originated from and
|
|||
:group 'erc-hooks
|
||||
:type 'hook)
|
||||
|
||||
(defvar erc-netsplit-list nil
|
||||
(defvar-local erc-netsplit-list nil
|
||||
"This is a list of the form
|
||||
\((\"a.b.c.d e.f.g\" TIMESTAMP FIRST-JOIN \"nick1\" ... \"nickn\") ...)
|
||||
where FIRST-JOIN is t or nil, depending on whether or not the first
|
||||
join from that split has been detected or not.")
|
||||
(make-variable-buffer-local 'erc-netsplit-list)
|
||||
|
||||
(defun erc-netsplit-install-message-catalogs ()
|
||||
(erc-define-catalog
|
||||
|
|
|
|||
|
|
@ -722,9 +722,8 @@ MATCHER is used to find a corresponding network to a server while
|
|||
(regexp)
|
||||
(const :tag "Network has no common server ending" nil)))))
|
||||
|
||||
(defvar erc-network nil
|
||||
(defvar-local erc-network nil
|
||||
"The name of the network you are connected to (a symbol).")
|
||||
(make-variable-buffer-local 'erc-network)
|
||||
|
||||
;; Functions:
|
||||
|
||||
|
|
|
|||
|
|
@ -75,13 +75,11 @@ strings."
|
|||
|
||||
;;;; Internal variables
|
||||
|
||||
(defvar erc-last-ison nil
|
||||
(defvar-local erc-last-ison nil
|
||||
"Last ISON information received through `erc-notify-timer'.")
|
||||
(make-variable-buffer-local 'erc-last-ison)
|
||||
|
||||
(defvar erc-last-ison-time 0
|
||||
(defvar-local erc-last-ison-time 0
|
||||
"Last time ISON was sent to the server in `erc-notify-timer'.")
|
||||
(make-variable-buffer-local 'erc-last-ison-time)
|
||||
|
||||
;;;; Setup
|
||||
|
||||
|
|
|
|||
|
|
@ -53,16 +53,14 @@ be recalled using M-p and M-n."
|
|||
(define-key erc-mode-map "\M-p" 'undefined)
|
||||
(define-key erc-mode-map "\M-n" 'undefined)))
|
||||
|
||||
(defvar erc-input-ring nil "Input ring for erc.")
|
||||
(make-variable-buffer-local 'erc-input-ring)
|
||||
(defvar-local erc-input-ring nil "Input ring for erc.")
|
||||
|
||||
(defvar erc-input-ring-index nil
|
||||
(defvar-local erc-input-ring-index nil
|
||||
"Position in the input ring for erc.
|
||||
If nil, the input line is blank and the user is conceptually after
|
||||
the most recently added item in the ring. If an integer, the input
|
||||
line is non-blank and displays the item from the ring indexed by this
|
||||
variable.")
|
||||
(make-variable-buffer-local 'erc-input-ring-index)
|
||||
|
||||
(defun erc-input-ring-setup ()
|
||||
"Do the setup required so that we can use comint style input rings.
|
||||
|
|
|
|||
|
|
@ -191,21 +191,18 @@ or `erc-send-modify-hook'."
|
|||
(list (lambda (_window _before dir)
|
||||
(erc-echo-timestamp dir ct))))))))
|
||||
|
||||
(defvar erc-timestamp-last-inserted nil
|
||||
(defvar-local erc-timestamp-last-inserted nil
|
||||
"Last timestamp inserted into the buffer.")
|
||||
(make-variable-buffer-local 'erc-timestamp-last-inserted)
|
||||
|
||||
(defvar erc-timestamp-last-inserted-left nil
|
||||
(defvar-local erc-timestamp-last-inserted-left nil
|
||||
"Last timestamp inserted into the left side of the buffer.
|
||||
This is used when `erc-insert-timestamp-function' is set to
|
||||
`erc-timestamp-left-and-right'")
|
||||
(make-variable-buffer-local 'erc-timestamp-last-inserted-left)
|
||||
|
||||
(defvar erc-timestamp-last-inserted-right nil
|
||||
(defvar-local erc-timestamp-last-inserted-right nil
|
||||
"Last timestamp inserted into the right side of the buffer.
|
||||
This is used when `erc-insert-timestamp-function' is set to
|
||||
`erc-timestamp-left-and-right'")
|
||||
(make-variable-buffer-local 'erc-timestamp-last-inserted-right)
|
||||
|
||||
(defcustom erc-timestamp-only-if-changed-flag t
|
||||
"Insert timestamp only if its value changed since last insertion.
|
||||
|
|
|
|||
126
lisp/erc/erc.el
126
lisp/erc/erc.el
|
|
@ -270,9 +270,8 @@ A typical value would be \((\"#emacs\" \"QUIT\" \"JOIN\")
|
|||
:group 'erc-ignore
|
||||
:type 'erc-message-type)
|
||||
|
||||
(defvar erc-session-password nil
|
||||
(defvar-local erc-session-password nil
|
||||
"The password used for the current session.")
|
||||
(make-variable-buffer-local 'erc-session-password)
|
||||
|
||||
(defcustom erc-disconnected-hook nil
|
||||
"Run this hook with arguments (NICK IP REASON) when disconnected.
|
||||
|
|
@ -337,18 +336,16 @@ Functions are passed a buffer as the first argument."
|
|||
:type 'hook)
|
||||
|
||||
|
||||
(defvar erc-channel-users nil
|
||||
(defvar-local erc-channel-users nil
|
||||
"A hash table of members in the current channel, which
|
||||
associates nicknames with cons cells of the form:
|
||||
\(USER . MEMBER-DATA) where USER is a pointer to an
|
||||
erc-server-user struct, and MEMBER-DATA is a pointer to an
|
||||
erc-channel-user struct.")
|
||||
(make-variable-buffer-local 'erc-channel-users)
|
||||
|
||||
(defvar erc-server-users nil
|
||||
(defvar-local erc-server-users nil
|
||||
"A hash table of users on the current server, which associates
|
||||
nicknames with erc-server-user struct instances.")
|
||||
(make-variable-buffer-local 'erc-server-users)
|
||||
|
||||
(defun erc-downcase (string)
|
||||
"Convert STRING to IRC standard conforming downcase."
|
||||
|
|
@ -632,23 +629,19 @@ See also: `erc-get-channel-user-list'."
|
|||
(or (not nicky)
|
||||
(string-lessp nickx nicky))))))))
|
||||
|
||||
(defvar erc-channel-topic nil
|
||||
(defvar-local erc-channel-topic nil
|
||||
"A topic string for the channel. Should only be used in channel-buffers.")
|
||||
(make-variable-buffer-local 'erc-channel-topic)
|
||||
|
||||
(defvar erc-channel-modes nil
|
||||
(defvar-local erc-channel-modes nil
|
||||
"List of strings representing channel modes.
|
||||
E.g. (\"i\" \"m\" \"s\" \"b Quake!*@*\")
|
||||
\(not sure the ban list will be here, but why not)")
|
||||
(make-variable-buffer-local 'erc-channel-modes)
|
||||
|
||||
(defvar erc-insert-marker nil
|
||||
(defvar-local erc-insert-marker nil
|
||||
"The place where insertion of new text in erc buffers should happen.")
|
||||
(make-variable-buffer-local 'erc-insert-marker)
|
||||
|
||||
(defvar erc-input-marker nil
|
||||
(defvar-local erc-input-marker nil
|
||||
"The marker where input should be inserted.")
|
||||
(make-variable-buffer-local 'erc-input-marker)
|
||||
|
||||
(defun erc-string-no-properties (string)
|
||||
"Return a copy of STRING will all text-properties removed."
|
||||
|
|
@ -900,9 +893,8 @@ directory in the list."
|
|||
:group 'erc-scripts
|
||||
:type 'boolean)
|
||||
|
||||
(defvar erc-last-saved-position nil
|
||||
(defvar-local erc-last-saved-position nil
|
||||
"A marker containing the position the current buffer was last saved at.")
|
||||
(make-variable-buffer-local 'erc-last-saved-position)
|
||||
|
||||
(defcustom erc-kill-buffer-on-part nil
|
||||
"Kill the channel buffer on PART.
|
||||
|
|
@ -1271,8 +1263,7 @@ See also `erc-show-my-nick'."
|
|||
(defvar erc-debug-log-file (expand-file-name "ERC.debug")
|
||||
"Debug log file name.")
|
||||
|
||||
(defvar erc-dbuf nil)
|
||||
(make-variable-buffer-local 'erc-dbuf)
|
||||
(defvar-local erc-dbuf nil)
|
||||
|
||||
(defmacro define-erc-module (name alias doc enable-body disable-body
|
||||
&optional local-p)
|
||||
|
|
@ -1462,11 +1453,10 @@ If BUFFER is nil, the current buffer is used."
|
|||
|
||||
;; Last active buffer, to print server messages in the right place
|
||||
|
||||
(defvar erc-active-buffer nil
|
||||
(defvar-local erc-active-buffer nil
|
||||
"The current active buffer, the one where the user typed the last command.
|
||||
Defaults to the server buffer, and should only be set in the
|
||||
server buffer.")
|
||||
(make-variable-buffer-local 'erc-active-buffer)
|
||||
|
||||
(defun erc-active-buffer ()
|
||||
"Return the value of `erc-active-buffer' for the current server.
|
||||
|
|
@ -1820,52 +1810,41 @@ all channel buffers on all servers."
|
|||
|
||||
;; Some local variables
|
||||
|
||||
(defvar erc-default-recipients nil
|
||||
(defvar-local erc-default-recipients nil
|
||||
"List of default recipients of the current buffer.")
|
||||
(make-variable-buffer-local 'erc-default-recipients)
|
||||
|
||||
(defvar erc-session-user-full-name nil
|
||||
(defvar-local erc-session-user-full-name nil
|
||||
"Full name of the user on the current server.")
|
||||
(make-variable-buffer-local 'erc-session-user-full-name)
|
||||
|
||||
(defvar erc-channel-user-limit nil
|
||||
(defvar-local erc-channel-user-limit nil
|
||||
"Limit of users per channel.")
|
||||
(make-variable-buffer-local 'erc-channel-user-limit)
|
||||
|
||||
(defvar erc-channel-key nil
|
||||
(defvar-local erc-channel-key nil
|
||||
"Key needed to join channel.")
|
||||
(make-variable-buffer-local 'erc-channel-key)
|
||||
|
||||
(defvar erc-invitation nil
|
||||
(defvar-local erc-invitation nil
|
||||
"Last invitation channel.")
|
||||
(make-variable-buffer-local 'erc-invitation)
|
||||
|
||||
(defvar erc-away nil
|
||||
(defvar-local erc-away nil
|
||||
"Non-nil indicates that we are away.
|
||||
|
||||
Use `erc-away-time' to access this if you might be in a channel
|
||||
buffer rather than a server buffer.")
|
||||
(make-variable-buffer-local 'erc-away)
|
||||
|
||||
(defvar erc-channel-list nil
|
||||
(defvar-local erc-channel-list nil
|
||||
"Server channel list.")
|
||||
(make-variable-buffer-local 'erc-channel-list)
|
||||
|
||||
(defvar erc-bad-nick nil
|
||||
(defvar-local erc-bad-nick nil
|
||||
"Non-nil indicates that we got a `nick in use' error while connecting.")
|
||||
(make-variable-buffer-local 'erc-bad-nick)
|
||||
|
||||
(defvar erc-logged-in nil
|
||||
(defvar-local erc-logged-in nil
|
||||
"Non-nil indicates that we are logged in.")
|
||||
(make-variable-buffer-local 'erc-logged-in)
|
||||
|
||||
(defvar erc-default-nicks nil
|
||||
(defvar-local erc-default-nicks nil
|
||||
"The local copy of `erc-nick' - the list of nicks to choose from.")
|
||||
(make-variable-buffer-local 'erc-default-nicks)
|
||||
|
||||
(defvar erc-nick-change-attempt-count 0
|
||||
(defvar-local erc-nick-change-attempt-count 0
|
||||
"Used to keep track of how many times an attempt at changing nick is made.")
|
||||
(make-variable-buffer-local 'erc-nick-change-attempt-count)
|
||||
|
||||
(defun erc-migrate-modules (mods)
|
||||
"Migrate old names of ERC modules to new ones."
|
||||
|
|
@ -2764,8 +2743,7 @@ present."
|
|||
(let ((prop-val (erc-get-parsed-vector position)))
|
||||
(and prop-val (member (erc-response.command prop-val) list))))
|
||||
|
||||
(defvar erc-send-input-line-function 'erc-send-input-line)
|
||||
(make-variable-buffer-local 'erc-send-input-line-function)
|
||||
(defvar-local erc-send-input-line-function 'erc-send-input-line)
|
||||
|
||||
(defun erc-send-input-line (target line &optional force)
|
||||
"Send LINE to TARGET.
|
||||
|
|
@ -3181,12 +3159,11 @@ were most recently invited. See also `invitation'."
|
|||
(defalias 'erc-cmd-CHANNEL 'erc-cmd-JOIN)
|
||||
(defalias 'erc-cmd-J 'erc-cmd-JOIN)
|
||||
|
||||
(defvar erc-channel-new-member-names nil
|
||||
(defvar-local erc-channel-new-member-names nil
|
||||
"If non-nil, a names list is currently being received.
|
||||
|
||||
If non-nil, this variable is a hash-table that associates
|
||||
received nicks with t.")
|
||||
(make-variable-buffer-local 'erc-channel-new-member-names)
|
||||
|
||||
(defun erc-cmd-NAMES (&optional channel)
|
||||
"Display the users in CHANNEL.
|
||||
|
|
@ -3833,7 +3810,7 @@ If CHANNEL is not specified, clear the topic for the default channel."
|
|||
|
||||
;;; Banlists
|
||||
|
||||
(defvar erc-channel-banlist nil
|
||||
(defvar-local erc-channel-banlist nil
|
||||
"A list of bans seen for the current channel.
|
||||
|
||||
Each ban is an alist of the form:
|
||||
|
|
@ -3841,7 +3818,6 @@ Each ban is an alist of the form:
|
|||
|
||||
The property `received-from-server' indicates whether
|
||||
or not the ban list has been requested from the server.")
|
||||
(make-variable-buffer-local 'erc-channel-banlist)
|
||||
(put 'erc-channel-banlist 'received-from-server nil)
|
||||
|
||||
(defun erc-cmd-BANLIST ()
|
||||
|
|
@ -6488,32 +6464,31 @@ if `erc-away' is non-nil."
|
|||
(setq mode-line-buffer-identification
|
||||
(list (format-spec erc-mode-line-format spec)))
|
||||
(setq mode-line-process (list process-status))
|
||||
(when (boundp 'header-line-format)
|
||||
(let ((header (if erc-header-line-format
|
||||
(format-spec erc-header-line-format spec)
|
||||
nil)))
|
||||
(cond (erc-header-line-uses-tabbar-p
|
||||
(setq-local tabbar--local-hlf header-line-format)
|
||||
(kill-local-variable 'header-line-format))
|
||||
((null header)
|
||||
(setq header-line-format nil))
|
||||
(erc-header-line-uses-help-echo-p
|
||||
(let ((help-echo (with-temp-buffer
|
||||
(insert header)
|
||||
(fill-region (point-min) (point-max))
|
||||
(buffer-string))))
|
||||
(setq header-line-format
|
||||
(replace-regexp-in-string
|
||||
"%"
|
||||
"%%"
|
||||
(if face
|
||||
(propertize header 'help-echo help-echo
|
||||
'face face)
|
||||
(propertize header 'help-echo help-echo))))))
|
||||
(t (setq header-line-format
|
||||
(if face
|
||||
(propertize header 'face face)
|
||||
header)))))))
|
||||
(let ((header (if erc-header-line-format
|
||||
(format-spec erc-header-line-format spec)
|
||||
nil)))
|
||||
(cond (erc-header-line-uses-tabbar-p
|
||||
(setq-local tabbar--local-hlf header-line-format)
|
||||
(kill-local-variable 'header-line-format))
|
||||
((null header)
|
||||
(setq header-line-format nil))
|
||||
(erc-header-line-uses-help-echo-p
|
||||
(let ((help-echo (with-temp-buffer
|
||||
(insert header)
|
||||
(fill-region (point-min) (point-max))
|
||||
(buffer-string))))
|
||||
(setq header-line-format
|
||||
(replace-regexp-in-string
|
||||
"%"
|
||||
"%%"
|
||||
(if face
|
||||
(propertize header 'help-echo help-echo
|
||||
'face face)
|
||||
(propertize header 'help-echo help-echo))))))
|
||||
(t (setq header-line-format
|
||||
(if face
|
||||
(propertize header 'face face)
|
||||
header))))))
|
||||
(force-mode-line-update)))
|
||||
|
||||
(defun erc-update-mode-line (&optional buffer)
|
||||
|
|
@ -6783,8 +6758,7 @@ functions."
|
|||
"")))))
|
||||
|
||||
|
||||
(defvar erc-current-message-catalog 'english)
|
||||
(make-variable-buffer-local 'erc-current-message-catalog)
|
||||
(defvar-local erc-current-message-catalog 'english)
|
||||
|
||||
(defun erc-retrieve-catalog-entry (entry &optional catalog)
|
||||
"Retrieve ENTRY from CATALOG.
|
||||
|
|
|
|||
|
|
@ -91,27 +91,23 @@ variable names, arguments, etc."
|
|||
(defcustom eshell-cmpl-load-hook nil
|
||||
"A list of functions to run when `eshell-cmpl' is loaded."
|
||||
:version "24.1" ; removed eshell-cmpl-initialize
|
||||
:type 'hook
|
||||
:group 'eshell-cmpl)
|
||||
:type 'hook)
|
||||
|
||||
(defcustom eshell-show-lisp-completions nil
|
||||
"If non-nil, include Lisp functions in the command completion list.
|
||||
If this variable is nil, Lisp completion can still be done in command
|
||||
position by using M-TAB instead of TAB."
|
||||
:type 'boolean
|
||||
:group 'eshell-cmpl)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom eshell-show-lisp-alternatives t
|
||||
"If non-nil, and no other completions found, show Lisp functions.
|
||||
Setting this variable means nothing if `eshell-show-lisp-completions'
|
||||
is non-nil."
|
||||
:type 'boolean
|
||||
:group 'eshell-cmpl)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom eshell-no-completion-during-jobs t
|
||||
"If non-nil, don't allow completion while a process is running."
|
||||
:type 'boolean
|
||||
:group 'eshell-cmpl)
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom eshell-command-completions-alist
|
||||
'(("acroread" . "\\.pdf\\'")
|
||||
|
|
@ -136,8 +132,7 @@ is non-nil."
|
|||
"An alist that defines simple argument type correlations.
|
||||
This is provided for common commands, as a simplistic alternative
|
||||
to writing a completion function."
|
||||
:type '(repeat (cons string regexp))
|
||||
:group 'eshell-cmpl)
|
||||
:type '(repeat (cons string regexp)))
|
||||
|
||||
(defun eshell-cmpl--custom-variable-docstring (pcomplete-var)
|
||||
"Generate the docstring of a variable derived from a pcomplete-* variable."
|
||||
|
|
@ -148,23 +143,19 @@ to writing a completion function."
|
|||
|
||||
(defcustom eshell-cmpl-file-ignore "~\\'"
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-file-ignore)
|
||||
:type (get 'pcomplete-file-ignore 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-file-ignore 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-dir-ignore "\\`\\(\\.\\.?\\|CVS\\)/\\'"
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-dir-ignore)
|
||||
:type (get 'pcomplete-dir-ignore 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-dir-ignore 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-ignore-case (eshell-under-windows-p)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-ignore-case)
|
||||
:type (get 'pcomplete-ignore-case 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-ignore-case 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-autolist nil
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-autolist)
|
||||
:type (get 'pcomplete-autolist 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-autolist 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-suffix-list (list ?/ ?:)
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-suffix-list)
|
||||
|
|
@ -176,51 +167,42 @@ to writing a completion function."
|
|||
|
||||
(defcustom eshell-cmpl-recexact nil
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-recexact)
|
||||
:type (get 'pcomplete-recexact 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-recexact 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-man-function 'man
|
||||
(defcustom eshell-cmpl-man-function #'man
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-man-function)
|
||||
:type (get 'pcomplete-man-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-man-function 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-compare-entry-function 'file-newer-than-file-p
|
||||
(defcustom eshell-cmpl-compare-entry-function #'file-newer-than-file-p
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-compare-entry-function)
|
||||
:type (get 'pcomplete-compare-entry-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-compare-entry-function 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-expand-before-complete nil
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-expand-before-complete)
|
||||
:type (get 'pcomplete-expand-before-complete 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-expand-before-complete 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-cycle-completions t
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-cycle-completions)
|
||||
:type (get 'pcomplete-cycle-completions 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-cycle-completions 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-cycle-cutoff-length 5
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-cycle-cutoff-length)
|
||||
:type (get 'pcomplete-cycle-cutoff-length 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-cycle-cutoff-length 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-restore-window-delay 1
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-restore-window-delay)
|
||||
:type (get 'pcomplete-restore-window-delay 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-restore-window-delay 'custom-type))
|
||||
|
||||
(defcustom eshell-command-completion-function
|
||||
(lambda ()
|
||||
(pcomplete-here (eshell-complete-commands-list)))
|
||||
(pcomplete-here (eshell--complete-commands-list)))
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-command-completion-function)
|
||||
:type (get 'pcomplete-command-completion-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-command-completion-function 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-command-name-function
|
||||
'eshell-completion-command-name
|
||||
#'eshell-completion-command-name
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-command-name-function)
|
||||
:type (get 'pcomplete-command-name-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-command-name-function 'custom-type))
|
||||
|
||||
(defcustom eshell-default-completion-function
|
||||
(lambda ()
|
||||
|
|
@ -229,13 +211,11 @@ to writing a completion function."
|
|||
(cdr (assoc (funcall eshell-cmpl-command-name-function)
|
||||
eshell-command-completions-alist))))))
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-default-completion-function)
|
||||
:type (get 'pcomplete-default-completion-function 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-default-completion-function 'custom-type))
|
||||
|
||||
(defcustom eshell-cmpl-use-paring t
|
||||
(eshell-cmpl--custom-variable-docstring 'pcomplete-use-paring)
|
||||
:type (get 'pcomplete-use-paring 'custom-type)
|
||||
:group 'eshell-cmpl)
|
||||
:type (get 'pcomplete-use-paring 'custom-type))
|
||||
|
||||
;;; Functions:
|
||||
|
||||
|
|
@ -274,7 +254,7 @@ to writing a completion function."
|
|||
(setq-local pcomplete-default-completion-function
|
||||
eshell-default-completion-function)
|
||||
(setq-local pcomplete-parse-arguments-function
|
||||
'eshell-complete-parse-arguments)
|
||||
#'eshell-complete-parse-arguments)
|
||||
(setq-local pcomplete-file-ignore
|
||||
eshell-cmpl-file-ignore)
|
||||
(setq-local pcomplete-dir-ignore
|
||||
|
|
@ -403,64 +383,65 @@ to writing a completion function."
|
|||
args)
|
||||
posns)))
|
||||
|
||||
(defun eshell-complete-commands-list ()
|
||||
(defun eshell--complete-commands-list ()
|
||||
"Generate list of applicable, visible commands."
|
||||
(let ((filename (pcomplete-arg)) glob-name)
|
||||
(if (file-name-directory filename)
|
||||
(if eshell-force-execution
|
||||
(pcomplete-dirs-or-entries nil #'file-readable-p)
|
||||
(pcomplete-executables))
|
||||
(if (and (> (length filename) 0)
|
||||
(eq (aref filename 0) eshell-explicit-command-char))
|
||||
(setq filename (substring filename 1)
|
||||
pcomplete-stub filename
|
||||
glob-name t))
|
||||
(let* ((paths (eshell-get-path))
|
||||
(cwd (file-name-as-directory
|
||||
(expand-file-name default-directory)))
|
||||
(path "") (comps-in-path ())
|
||||
(file "") (filepath "") (completions ()))
|
||||
;; Go thru each path in the search path, finding completions.
|
||||
(while paths
|
||||
(setq path (file-name-as-directory
|
||||
(expand-file-name (or (car paths) ".")))
|
||||
comps-in-path
|
||||
(and (file-accessible-directory-p path)
|
||||
(file-name-all-completions filename path)))
|
||||
;; Go thru each completion found, to see whether it should
|
||||
;; be used.
|
||||
(while comps-in-path
|
||||
(setq file (car comps-in-path)
|
||||
filepath (concat path file))
|
||||
(if (and (not (member file completions)) ;
|
||||
(or (string-equal path cwd)
|
||||
(not (file-directory-p filepath)))
|
||||
(if eshell-force-execution
|
||||
(file-readable-p filepath)
|
||||
(file-executable-p filepath)))
|
||||
(setq completions (cons file completions)))
|
||||
(setq comps-in-path (cdr comps-in-path)))
|
||||
(setq paths (cdr paths)))
|
||||
;; Add aliases which are currently visible, and Lisp functions.
|
||||
(pcomplete-uniquify-list
|
||||
(if glob-name
|
||||
completions
|
||||
(setq completions
|
||||
(append (if (fboundp 'eshell-alias-completions)
|
||||
(eshell-alias-completions filename))
|
||||
(eshell-winnow-list
|
||||
(mapcar
|
||||
(lambda (name)
|
||||
(substring name 7))
|
||||
(all-completions (concat "eshell/" filename)
|
||||
obarray #'functionp))
|
||||
nil '(eshell-find-alias-function))
|
||||
completions))
|
||||
(append (and (or eshell-show-lisp-completions
|
||||
(and eshell-show-lisp-alternatives
|
||||
(null completions)))
|
||||
(all-completions filename obarray #'functionp))
|
||||
completions)))))))
|
||||
;; Building the commands list can take quite a while, especially over Tramp
|
||||
;; (bug#41423), so do it lazily.
|
||||
(let ((glob-name
|
||||
;; When a command is specified using `eshell-explicit-command-char',
|
||||
;; that char is not part of the command and hence not part of what
|
||||
;; we complete. Adjust `pcomplete-stub' accordingly!
|
||||
(if (and (> (length pcomplete-stub) 0)
|
||||
(eq (aref pcomplete-stub 0) eshell-explicit-command-char))
|
||||
(setq pcomplete-stub (substring pcomplete-stub 1)))))
|
||||
(completion-table-dynamic
|
||||
(lambda (filename)
|
||||
(if (file-name-directory filename)
|
||||
(if eshell-force-execution
|
||||
(pcomplete-dirs-or-entries nil #'file-readable-p)
|
||||
(pcomplete-executables))
|
||||
(let* ((paths (eshell-get-path))
|
||||
(cwd (file-name-as-directory
|
||||
(expand-file-name default-directory)))
|
||||
(filepath "") (completions ()))
|
||||
;; Go thru each path in the search path, finding completions.
|
||||
(dolist (path paths)
|
||||
(setq path (file-name-as-directory
|
||||
(expand-file-name (or path "."))))
|
||||
;; Go thru each completion found, to see whether it should
|
||||
;; be used.
|
||||
(dolist (file (and (file-accessible-directory-p path)
|
||||
(file-name-all-completions filename path)))
|
||||
(setq filepath (concat path file))
|
||||
(if (and (not (member file completions)) ;
|
||||
(or (string-equal path cwd)
|
||||
(not (file-directory-p filepath)))
|
||||
;; FIXME: Those repeated file tests end up
|
||||
;; very costly over Tramp, we should cache the result.
|
||||
(if eshell-force-execution
|
||||
(file-readable-p filepath)
|
||||
(file-executable-p filepath)))
|
||||
(push file completions))))
|
||||
;; Add aliases which are currently visible, and Lisp functions.
|
||||
(pcomplete-uniquify-list
|
||||
(if glob-name
|
||||
completions
|
||||
(setq completions
|
||||
(append (if (fboundp 'eshell-alias-completions)
|
||||
(eshell-alias-completions filename))
|
||||
(eshell-winnow-list
|
||||
(mapcar
|
||||
(lambda (name)
|
||||
(substring name 7))
|
||||
(all-completions (concat "eshell/" filename)
|
||||
obarray #'functionp))
|
||||
nil '(eshell-find-alias-function))
|
||||
completions))
|
||||
(append (and (or eshell-show-lisp-completions
|
||||
(and eshell-show-lisp-alternatives
|
||||
(null completions)))
|
||||
(all-completions filename obarray #'functionp))
|
||||
completions)))))))))
|
||||
|
||||
(define-obsolete-function-alias 'eshell-pcomplete #'completion-at-point "27.1")
|
||||
|
||||
|
|
|
|||
|
|
@ -99,8 +99,12 @@ If it is nil, Eshell will use the value of HISTFILE."
|
|||
|
||||
(defcustom eshell-hist-ignoredups nil
|
||||
"If non-nil, don't add input matching the last on the input ring.
|
||||
This mirrors the optional behavior of bash."
|
||||
:type 'boolean)
|
||||
The value `erase' mirrors the \"erasedups\" value of HISTCONTROL
|
||||
in bash, and any other non-nil value mirrors the \"ignoredups\"
|
||||
value."
|
||||
:type '(choice (const :tag "Don't ignore anything" nil)
|
||||
(const :tag "Ignore consecutive duplicates" t)
|
||||
(const :tag "Only keep last duplicate" 'erase)))
|
||||
|
||||
(defcustom eshell-save-history-on-exit t
|
||||
"Determine if history should be automatically saved.
|
||||
|
|
@ -371,12 +375,22 @@ unless a different file is specified on the command line.")
|
|||
Input is entered into the input history ring, if the value of
|
||||
variable `eshell-input-filter' returns non-nil when called on the
|
||||
input."
|
||||
(if (and (funcall eshell-input-filter input)
|
||||
(or (null eshell-hist-ignoredups)
|
||||
(not (ring-p eshell-history-ring))
|
||||
(ring-empty-p eshell-history-ring)
|
||||
(not (string-equal (eshell-get-history 0) input))))
|
||||
(eshell-put-history input))
|
||||
(when (and (funcall eshell-input-filter input)
|
||||
(if (eq eshell-hist-ignoredups 'erase)
|
||||
;; Remove any old occurrences of the input, and put
|
||||
;; the new one at the end.
|
||||
(progn
|
||||
(ring-remove eshell-history-ring
|
||||
(ring-member eshell-history-ring input))
|
||||
t)
|
||||
;; Always add...
|
||||
(or (null eshell-hist-ignoredups)
|
||||
;; ... or add if it's not already present at the
|
||||
;; end.
|
||||
(not (ring-p eshell-history-ring))
|
||||
(ring-empty-p eshell-history-ring)
|
||||
(not (string-equal (eshell-get-history 0) input)))))
|
||||
(eshell-put-history input))
|
||||
(setq eshell-save-history-index eshell-history-index)
|
||||
(setq eshell-history-index nil))
|
||||
|
||||
|
|
|
|||
|
|
@ -1001,7 +1001,7 @@ be finished later after the completion of an asynchronous subprocess."
|
|||
;; expand any macros directly into the form. This is done so that
|
||||
;; we can modify any `let' forms to evaluate only once.
|
||||
(if (macrop (car form))
|
||||
(let ((exp (eshell-copy-tree (macroexpand form))))
|
||||
(let ((exp (copy-tree (macroexpand form))))
|
||||
(eshell-manipulate (format-message "expanding macro `%s'"
|
||||
(symbol-name (car form)))
|
||||
(setcar form (car exp))
|
||||
|
|
@ -1009,7 +1009,7 @@ be finished later after the completion of an asynchronous subprocess."
|
|||
(let ((args (cdr form)))
|
||||
(cond
|
||||
((eq (car form) 'while)
|
||||
;; `eshell-copy-tree' is needed here so that the test argument
|
||||
;; `copy-tree' is needed here so that the test argument
|
||||
;; doesn't get modified and thus always yield the same result.
|
||||
(when (car eshell-command-body)
|
||||
(cl-assert (not synchronous-p))
|
||||
|
|
@ -1017,27 +1017,27 @@ be finished later after the completion of an asynchronous subprocess."
|
|||
(setcar eshell-command-body nil)
|
||||
(setcar eshell-test-body nil))
|
||||
(unless (car eshell-test-body)
|
||||
(setcar eshell-test-body (eshell-copy-tree (car args))))
|
||||
(setcar eshell-test-body (copy-tree (car args))))
|
||||
(while (cadr (eshell-do-eval (car eshell-test-body)))
|
||||
(setcar eshell-command-body
|
||||
(if (cddr args)
|
||||
`(progn ,@(eshell-copy-tree (cdr args)))
|
||||
(eshell-copy-tree (cadr args))))
|
||||
`(progn ,@(copy-tree (cdr args)))
|
||||
(copy-tree (cadr args))))
|
||||
(eshell-do-eval (car eshell-command-body) synchronous-p)
|
||||
(setcar eshell-command-body nil)
|
||||
(setcar eshell-test-body (eshell-copy-tree (car args))))
|
||||
(setcar eshell-test-body (copy-tree (car args))))
|
||||
(setcar eshell-command-body nil))
|
||||
((eq (car form) 'if)
|
||||
;; `eshell-copy-tree' is needed here so that the test argument
|
||||
;; `copy-tree' is needed here so that the test argument
|
||||
;; doesn't get modified and thus always yield the same result.
|
||||
(if (car eshell-command-body)
|
||||
(progn
|
||||
(cl-assert (not synchronous-p))
|
||||
(eshell-do-eval (car eshell-command-body)))
|
||||
(unless (car eshell-test-body)
|
||||
(setcar eshell-test-body (eshell-copy-tree (car args))))
|
||||
(setcar eshell-test-body (copy-tree (car args))))
|
||||
(setcar eshell-command-body
|
||||
(eshell-copy-tree
|
||||
(copy-tree
|
||||
(if (cadr (eshell-do-eval (car eshell-test-body)))
|
||||
(cadr args)
|
||||
(car (cddr args)))))
|
||||
|
|
|
|||
|
|
@ -235,11 +235,10 @@ If N or M is nil, it means the end of the list."
|
|||
a (last a)))
|
||||
a))
|
||||
|
||||
(defvar eshell-path-env (getenv "PATH")
|
||||
(defvar-local eshell-path-env (getenv "PATH")
|
||||
"Content of $PATH.
|
||||
It might be different from \(getenv \"PATH\"), when
|
||||
`default-directory' points to a remote host.")
|
||||
(make-variable-buffer-local 'eshell-path-env)
|
||||
|
||||
(defun eshell-get-path ()
|
||||
"Return $PATH as a list.
|
||||
|
|
@ -486,8 +485,6 @@ list."
|
|||
"Return the user id for user NAME."
|
||||
(car (rassoc name (eshell-read-user-names))))
|
||||
|
||||
(defalias 'eshell-user-name 'user-login-name)
|
||||
|
||||
(autoload 'pcomplete-read-hosts-file "pcomplete")
|
||||
(autoload 'pcomplete-read-hosts "pcomplete")
|
||||
(autoload 'pcomplete-read-host-names "pcomplete")
|
||||
|
|
@ -644,8 +641,6 @@ gid format. Valid values are `string' and `integer', defaulting to
|
|||
entry)
|
||||
(file-attributes file id-format))))
|
||||
|
||||
(defalias 'eshell-copy-tree 'copy-tree)
|
||||
|
||||
(defsubst eshell-processp (proc)
|
||||
"If the `processp' function does not exist, PROC is not a process."
|
||||
(and (fboundp 'processp) (processp proc)))
|
||||
|
|
@ -715,6 +710,9 @@ gid format. Valid values are `string' and `integer', defaulting to
|
|||
; (or result
|
||||
; (file-attributes filename))))
|
||||
|
||||
(define-obsolete-function-alias 'eshell-copy-tree #'copy-tree "28.1")
|
||||
(define-obsolete-function-alias 'eshell-user-name #'user-login-name "28.1")
|
||||
|
||||
(provide 'esh-util)
|
||||
|
||||
;;; esh-util.el ends here
|
||||
|
|
|
|||
|
|
@ -289,17 +289,14 @@ If ARG is omitted, point is placed at the end of the expanded text."
|
|||
|
||||
(defvar expand-list nil "Temporary variable used by the Expand package.")
|
||||
|
||||
(defvar expand-pos nil
|
||||
(defvar-local expand-pos nil
|
||||
"If non-nil, store a vector with position markers defined by the last expansion.")
|
||||
(make-variable-buffer-local 'expand-pos)
|
||||
|
||||
(defvar expand-index 0
|
||||
(defvar-local expand-index 0
|
||||
"Index of the last marker used in `expand-pos'.")
|
||||
(make-variable-buffer-local 'expand-index)
|
||||
|
||||
(defvar expand-point nil
|
||||
(defvar-local expand-point nil
|
||||
"End of the expanded region.")
|
||||
(make-variable-buffer-local 'expand-point)
|
||||
|
||||
(defun expand-add-abbrev (table abbrev expansion arg)
|
||||
"Add one abbreviation and provide the hook to move to the specified positions."
|
||||
|
|
|
|||
|
|
@ -217,21 +217,17 @@ Each positive or negative step scales the default face height by this amount."
|
|||
:type 'number
|
||||
:version "23.1")
|
||||
|
||||
;; current remapping cookie for text-scale-mode
|
||||
(defvar text-scale-mode-remapping nil)
|
||||
(make-variable-buffer-local 'text-scale-mode-remapping)
|
||||
(defvar-local text-scale-mode-remapping nil
|
||||
"Current remapping cookie for text-scale-mode.")
|
||||
|
||||
;; Lighter displayed for text-scale-mode in mode-line minor-mode list
|
||||
(defvar text-scale-mode-lighter "+0")
|
||||
(make-variable-buffer-local 'text-scale-mode-lighter)
|
||||
(defvar-local text-scale-mode-lighter "+0"
|
||||
"Lighter displayed for text-scale-mode in mode-line minor-mode list.")
|
||||
|
||||
;; Number of steps that text-scale-mode will increase/decrease text height
|
||||
(defvar text-scale-mode-amount 0)
|
||||
(make-variable-buffer-local 'text-scale-mode-amount)
|
||||
(defvar-local text-scale-mode-amount 0
|
||||
"Number of steps that text-scale-mode will increase/decrease text height.")
|
||||
|
||||
(defvar text-scale-remap-header-line nil
|
||||
(defvar-local text-scale-remap-header-line nil
|
||||
"If non-nil, text scaling may change font size of header lines too.")
|
||||
(make-variable-buffer-local 'text-scale-header-line)
|
||||
|
||||
(defun face-remap--clear-remappings ()
|
||||
(dolist (remapping
|
||||
|
|
@ -413,8 +409,7 @@ plist, etc."
|
|||
:version "23.1")
|
||||
|
||||
;; current remapping cookie for buffer-face-mode
|
||||
(defvar buffer-face-mode-remapping nil)
|
||||
(make-variable-buffer-local 'buffer-face-mode-remapping)
|
||||
(defvar-local buffer-face-mode-remapping nil)
|
||||
|
||||
;;;###autoload
|
||||
(define-minor-mode buffer-face-mode
|
||||
|
|
|
|||
|
|
@ -1675,9 +1675,8 @@ For example, try \":/\" for URL (and some FTP) references."
|
|||
:type '(choice (const nil) regexp)
|
||||
:group 'ffap)
|
||||
|
||||
(defvar ffap-menu-alist nil
|
||||
(defvar-local ffap-menu-alist nil
|
||||
"Buffer local cache of menu presented by `ffap-menu'.")
|
||||
(make-variable-buffer-local 'ffap-menu-alist)
|
||||
|
||||
(defvar ffap-menu-text-plist
|
||||
(cond
|
||||
|
|
|
|||
|
|
@ -570,13 +570,12 @@ from the MODE alist ignoring the input argument VALUE."
|
|||
(defvar enable-connection-local-variables t
|
||||
"Non-nil means enable use of connection-local variables.")
|
||||
|
||||
(defvar connection-local-variables-alist nil
|
||||
(defvar-local connection-local-variables-alist nil
|
||||
"Alist of connection-local variable settings in the current buffer.
|
||||
Each element in this list has the form (VAR . VALUE), where VAR
|
||||
is a connection-local variable (a symbol) and VALUE is its value.
|
||||
The actual value in the buffer may differ from VALUE, if it is
|
||||
changed by the user.")
|
||||
(make-variable-buffer-local 'connection-local-variables-alist)
|
||||
(setq ignored-local-variables
|
||||
(cons 'connection-local-variables-alist ignored-local-variables))
|
||||
|
||||
|
|
|
|||
|
|
@ -191,20 +191,18 @@ if the file has changed on disk and you have not edited the buffer."
|
|||
:type '(repeat regexp)
|
||||
:group 'find-file)
|
||||
|
||||
(defvar buffer-file-number nil
|
||||
(defvar-local buffer-file-number nil
|
||||
"The device number and file number of the file visited in the current buffer.
|
||||
The value is a list of the form (FILENUM DEVNUM).
|
||||
This pair of numbers uniquely identifies the file.
|
||||
If the buffer is visiting a new file, the value is nil.")
|
||||
(make-variable-buffer-local 'buffer-file-number)
|
||||
(put 'buffer-file-number 'permanent-local t)
|
||||
|
||||
(defvar buffer-file-numbers-unique (not (memq system-type '(windows-nt)))
|
||||
"Non-nil means that `buffer-file-number' uniquely identifies files.")
|
||||
|
||||
(defvar buffer-file-read-only nil
|
||||
(defvar-local buffer-file-read-only nil
|
||||
"Non-nil if visited file was read-only when visited.")
|
||||
(make-variable-buffer-local 'buffer-file-read-only)
|
||||
|
||||
(defcustom small-temporary-file-directory
|
||||
(if (eq system-type 'ms-dos) (getenv "TMPDIR"))
|
||||
|
|
@ -529,15 +527,14 @@ updates before the buffer is saved, use `before-save-hook'.")
|
|||
(put 'write-file-functions 'permanent-local t)
|
||||
|
||||
;; I found some files still using the obsolete form in 2018.
|
||||
(defvar local-write-file-hooks nil)
|
||||
(make-variable-buffer-local 'local-write-file-hooks)
|
||||
(defvar-local local-write-file-hooks nil)
|
||||
(put 'local-write-file-hooks 'permanent-local t)
|
||||
(make-obsolete-variable 'local-write-file-hooks 'write-file-functions "22.1")
|
||||
|
||||
;; I found some files still using the obsolete form in 2018.
|
||||
(define-obsolete-variable-alias 'write-contents-hooks
|
||||
'write-contents-functions "22.1")
|
||||
(defvar write-contents-functions nil
|
||||
(defvar-local write-contents-functions nil
|
||||
"List of functions to be called before writing out a buffer to a file.
|
||||
|
||||
Used only by `save-buffer'. If one of them returns non-nil, the
|
||||
|
|
@ -556,7 +553,6 @@ For hooks that _do_ pertain to the particular visited file, use
|
|||
`write-file-functions' relate to how a buffer is saved to file.
|
||||
To perform various checks or updates before the buffer is saved,
|
||||
use `before-save-hook'.")
|
||||
(make-variable-buffer-local 'write-contents-functions)
|
||||
|
||||
(defcustom enable-local-variables t
|
||||
"Control use of local variables in files you visit.
|
||||
|
|
@ -3443,23 +3439,21 @@ asking you for confirmation."
|
|||
|
||||
(put 'c-set-style 'safe-local-eval-function t)
|
||||
|
||||
(defvar file-local-variables-alist nil
|
||||
(defvar-local file-local-variables-alist nil
|
||||
"Alist of file-local variable settings in the current buffer.
|
||||
Each element in this list has the form (VAR . VALUE), where VAR
|
||||
is a file-local variable (a symbol) and VALUE is the value
|
||||
specified. The actual value in the buffer may differ from VALUE,
|
||||
if it is changed by the major or minor modes, or by the user.")
|
||||
(make-variable-buffer-local 'file-local-variables-alist)
|
||||
(put 'file-local-variables-alist 'permanent-local t)
|
||||
|
||||
(defvar dir-local-variables-alist nil
|
||||
(defvar-local dir-local-variables-alist nil
|
||||
"Alist of directory-local variable settings in the current buffer.
|
||||
Each element in this list has the form (VAR . VALUE), where VAR
|
||||
is a directory-local variable (a symbol) and VALUE is the value
|
||||
specified in .dir-locals.el. The actual value in the buffer
|
||||
may differ from VALUE, if it is changed by the major or minor modes,
|
||||
or by the user.")
|
||||
(make-variable-buffer-local 'dir-local-variables-alist)
|
||||
|
||||
(defvar before-hack-local-variables-hook nil
|
||||
"Normal hook run before setting file-local variables.
|
||||
|
|
@ -5233,7 +5227,7 @@ Used only by `save-buffer'."
|
|||
:type 'hook
|
||||
:group 'files)
|
||||
|
||||
(defvar save-buffer-coding-system nil
|
||||
(defvar-local save-buffer-coding-system nil
|
||||
"If non-nil, use this coding system for saving the buffer.
|
||||
More precisely, use this coding system in place of the
|
||||
value of `buffer-file-coding-system', when saving the buffer.
|
||||
|
|
@ -5241,7 +5235,6 @@ Calling `write-region' for any purpose other than saving the buffer
|
|||
will still use `buffer-file-coding-system'; this variable has no effect
|
||||
in such cases.")
|
||||
|
||||
(make-variable-buffer-local 'save-buffer-coding-system)
|
||||
(put 'save-buffer-coding-system 'permanent-local t)
|
||||
|
||||
(defun basic-save-buffer (&optional called-interactively)
|
||||
|
|
@ -5510,9 +5503,8 @@ Before and after saving the buffer, this function runs
|
|||
"ACTION-ALIST argument used in call to `map-y-or-n-p'.")
|
||||
(put 'save-some-buffers-action-alist 'risky-local-variable t)
|
||||
|
||||
(defvar buffer-save-without-query nil
|
||||
(defvar-local buffer-save-without-query nil
|
||||
"Non-nil means `save-some-buffers' should save this buffer without asking.")
|
||||
(make-variable-buffer-local 'buffer-save-without-query)
|
||||
|
||||
(defcustom save-some-buffers-default-predicate nil
|
||||
"Default predicate for `save-some-buffers'.
|
||||
|
|
|
|||
|
|
@ -209,14 +209,12 @@
|
|||
|
||||
(require 'outline)
|
||||
|
||||
(defvar foldout-fold-list nil
|
||||
(defvar-local foldout-fold-list nil
|
||||
"List of start and end markers for the folds currently entered.
|
||||
An end marker of nil means the fold ends after (point-max).")
|
||||
(make-variable-buffer-local 'foldout-fold-list)
|
||||
|
||||
(defvar foldout-mode-line-string nil
|
||||
(defvar-local foldout-mode-line-string nil
|
||||
"Mode line string announcing that we are in an outline fold.")
|
||||
(make-variable-buffer-local 'foldout-mode-line-string)
|
||||
|
||||
;; put our minor mode string immediately following outline-minor-mode's
|
||||
(or (assq 'foldout-mode-line-string minor-mode-alist)
|
||||
|
|
|
|||
|
|
@ -1140,9 +1140,8 @@ Otherwise, return nil."
|
|||
;; is nil. Start every window directly after the end of the previous
|
||||
;; window, to make sure long lines are displayed correctly.
|
||||
|
||||
(defvar follow-start-end-invalid t
|
||||
(defvar-local follow-start-end-invalid t
|
||||
"When non-nil, indicates `follow-windows-start-end-cache' is invalid.")
|
||||
(make-variable-buffer-local 'follow-start-end-invalid)
|
||||
|
||||
(defun follow-redisplay (&optional windows win preserve-win)
|
||||
"Reposition the WINDOWS around WIN.
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
;; This variable is used by mode packages that support Font Lock mode by
|
||||
;; defining their own keywords to use for `font-lock-keywords'. (The mode
|
||||
;; command should make it buffer-local and set it to provide the set up.)
|
||||
(defvar font-lock-defaults nil
|
||||
(defvar-local font-lock-defaults nil
|
||||
"Defaults for Font Lock mode specified by the major mode.
|
||||
Defaults should be of the form:
|
||||
|
||||
|
|
@ -66,7 +66,6 @@ functions, `font-lock-fontify-buffer-function',
|
|||
`font-lock-unfontify-region-function', and `font-lock-inhibit-thing-lock'.")
|
||||
;;;###autoload
|
||||
(put 'font-lock-defaults 'risky-local-variable t)
|
||||
(make-variable-buffer-local 'font-lock-defaults)
|
||||
|
||||
(defvar font-lock-function 'font-lock-default-function
|
||||
"A function which is called when `font-lock-mode' is toggled.
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue