Current File : //proc/self/root/kunden/proc/thread-self/root/kunden/usr/share/emacs/27.2/lisp/subr.elc |
;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.
;;; This file contains utf-8 non-ASCII characters,
;;; and so cannot be loaded into Emacs 22 or earlier.
(and (boundp 'emacs-version)
(< (aref emacs-version (1- (length emacs-version))) ?A)
(string-lessp emacs-version "23")
(error "`%s' was compiled for Emacs 23 or later" #$))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@1333 Tell the byte-compiler that function FN is defined, in FILE.
The FILE argument is not used by the byte-compiler, but by the
`check-declare' package, which checks that FILE contains a
definition for FN.
FILE can be either a Lisp file (in which case the ".el"
extension is optional), or a C file. C files are expanded
relative to the Emacs "src/" directory. Lisp files are
searched for using `locate-library', and if that fails they are
expanded relative to the location of the file containing the
declaration. A FILE with an "ext:" prefix is an external file.
`check-declare' will check such files if they are found, and skip
them without error if they are not.
Optional ARGLIST specifies FN's arguments, or is t to not specify
FN's arguments. An omitted ARGLIST defaults to t, not nil: a nil
ARGLIST specifies an empty argument list, and an explicit t
ARGLIST is a placeholder that allows supplying a later arg.
Optional FILEONLY non-nil means that `check-declare' will check
only that FILE exists, not that it defines FN. This is intended
for function definitions that `check-declare' does not recognize,
e.g., `defstruct'.
Note that for the purposes of `check-declare', this statement
must be the first non-whitespace on a line.
For more information, see Info node `(elisp)Declaring Functions'.
(fn FN FILE &rest ARGS)
(defalias 'declare-function '(macro . #[642 "\300\207" [nil] 4 (#$ . 410)]))
(byte-code "\300\301\302\303#\210\304\305\306\"\210\304\307\310\"\207" [set-advertised-calling-convention declare-function (fn file &optional arglist fileonly) nil defalias not null sxhash sxhash-equal] 4)
#@93 Evaluate FORM, expecting it not to return.
If FORM does return, signal an error.
(fn FORM)
(defalias 'noreturn '(macro . #[257 "\300\301BB\207" [prog1 ((error "Form marked with `noreturn' did return"))] 4 (#$ . 2031)]))
(put 'noreturn 'edebug-form-spec t)
#@156 Evaluate FORM, expecting a constant return value.
If FORM returns differing values when running under Testcover,
Testcover will raise an error.
(fn FORM)
(defalias '1value '(macro . #[257 "\207" [] 2 (#$ . 2296)]))
(put '1value 'edebug-form-spec t)
#@378 Set the `edebug-form-spec' property of SYMBOL according to SPEC.
Both SYMBOL and SPEC are unevaluated. The SPEC can be:
0 (instrument no arguments); t (instrument all arguments);
a symbol (naming a function with an Edebug specification); or a list.
The elements of the list describe the argument types; see
Info node `(elisp)Specification List' for details.
(fn SYMBOL SPEC)
(defalias 'def-edebug-spec '(macro . #[514 "\300\301D\302\301DF\207" [put quote 'edebug-form-spec] 7 (#$ . 2553)]))
#@813 Return an anonymous function.
Under dynamic binding, a call of the form (lambda ARGS DOCSTRING
INTERACTIVE BODY) is self-quoting; the result of evaluating the
lambda expression is the expression itself. Under lexical
binding, the result is a closure. Regardless, the result is a
function, i.e., it may be stored as the function value of a
symbol, passed to `funcall' or `mapcar', etc.
ARGS should take the same form as an argument list for a `defun'.
DOCSTRING is an optional documentation string.
If present, it should describe how to call the function.
But documentation strings are usually not useful in nameless functions.
INTERACTIVE should be a call to the function `interactive', which see.
It may also be omitted.
BODY should be a list of Lisp expressions.
(fn ARGS [DOCSTRING] [INTERACTIVE] BODY)
(defalias 'lambda '(macro . #[128 "\300\301BD\207" [function lambda] 4 (#$ . 3055)]))
(byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put lambda doc-string-elt 2 lisp-indent-function defun put edebug-form-spec (&define lambda-list lambda-doc [&optional ("interactive" interactive)] def-body)] 6)
#@197 Eval FORM1, FORM2 and BODY sequentially; return value from FORM2.
The value of FORM2 is saved during the evaluation of the
remaining args, whose values are discarded.
(fn FORM1 FORM2 &rest BODY)
(defalias 'prog2 '(macro . #[642 "\300\301BBE\207" [progn prog1] 8 (#$ . 4202)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put prog2 lisp-indent-function 2 put edebug-form-spec t] 5)
#@538 Set the default value of variable VAR to VALUE.
VAR, the variable name, is literal (not evaluated);
VALUE is an expression: it is evaluated and its value returned.
The default value of a variable is seen in buffers
that do not have their own values for the variable.
More generally, you can use multiple variables and values, as in
(setq-default VAR VALUE VAR VALUE...)
This sets each VAR's default value to the corresponding VALUE.
The VALUE for the Nth VAR can refer to the new default values
of previous VARs.
(fn [VAR VALUE]...)
(defalias 'setq-default '(macro . #[128 "\300\203 \301\302\211A\262\242D\211A\262\242EB\262\202 \303\237B\207" [nil set-default quote progn] 6 (#$ . 4612)]))
(put 'setq-default 'edebug-form-spec 'setq)
#@535 Make variables in PAIRS buffer-local and assign them the corresponding values.
PAIRS is a list of variable/value pairs. For each variable, make
it buffer-local and assign it the corresponding value. The
variables are literal symbols and should not be quoted.
The second VALUE is not computed until after the first VARIABLE
is set, and so on; each VALUE can use the new value of variables
set earlier in the ‘setq-local’. The return value of the
‘setq-local’ form is the value of the last VALUE.
(fn [VARIABLE VALUE]...)
(defalias 'setq-local '(macro . #[128 "\300G\301\"\302U\204 \303\304!\210\305\2036 @9\204 \303\306@\"\210\307\310\311@DDA@EB\262AA\262\202 \312\237!\207" [mod 2 0 error "PAIRS must have an even number of variable/value members" nil "Attempting to set a non-symbol: %s" set make-local-variable quote macroexp-progn] 6 (#$ . 5368)]))
(put 'setq-local 'edebug-form-spec 'setq)
#@203 Define VAR as a buffer-local variable with default value VAL.
Like `defvar' but additionally marks the variable as being automatically
buffer-local wherever it is set.
(fn VAR VAL &optional DOCSTRING)
(defalias 'defvar-local '(macro . #[770 "\300\301F\302\303DDE\207" [progn defvar make-variable-buffer-local quote] 8 (#$ . 6297)]))
(byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put defvar-local edebug-form-spec defvar function-put doc-string-elt 3] 4)
#@206 Add NEWELT to the list stored in the generalized variable PLACE.
This is morally equivalent to (setf PLACE (cons NEWELT PLACE)),
except that PLACE is evaluated only once (after NEWELT).
(fn NEWELT PLACE)
(defalias 'push '(macro . #[514 "\2119\203
\300\301EE\207\302\303!\210\304!\203 \211\202 \305\306!\307\310\311\312\313\314!\315\"\316\317%\"=\2039 \211\202@ \320DC\"\207" [setq cons require macroexp macroexp-copyable-p make-symbol "v" gv-get make-byte-code 514 "\211\301\300E!\207" vconcat vector [cons] 6 "\n\n(fn GETTER SETTER)" macroexp-let*] 12 (#$ . 6779)]))
(put 'push 'edebug-form-spec '(form gv-place))
#@223 Return the first element of PLACE's value, and remove it from the list.
PLACE must be a generalized variable whose value is a list.
If the value is nil, `pop' returns nil but does not actually
change the list.
(fn PLACE)
(defalias 'pop '(macro . #[257 "\3009\203 \301\302\303DEE\202 \304\305\"D\207" [car-safe prog1 setq cdr gv-get #[514 "\300!\203 \211\202 \301\302!\303\304D!E=\203 \211\202'