%PDF- %PDF-
Direktori : /usr/local/share/emacs/27.2/lisp/ |
Current File : //usr/local/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' \305DC\"\207" [macroexp-copyable-p make-symbol "x" prog1 cdr macroexp-let*] 9 "\n\n(fn GETTER SETTER)"]] 8 (#$ . 7419)])) (put 'pop 'edebug-form-spec '(gv-place)) #@181 If COND yields non-nil, do BODY, else return nil. When COND yields non-nil, eval BODY forms sequentially and return value of last one, or nil if there are none. (fn COND BODY...) (defalias 'when '(macro . #[385 "\300\301BE\207" [if progn] 6 (#$ . 8005)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put when lisp-indent-function 1 put edebug-form-spec t] 5) #@173 If COND yields nil, do BODY, else return nil. When COND yields nil, eval BODY forms sequentially and return value of last one, or nil if there are none. (fn COND BODY...) (defalias 'unless '(macro . #[385 "\300\301BBB\207" [if nil] 6 (#$ . 8392)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put unless lisp-indent-function 1 put edebug-form-spec t] 5) #@145 Return the boolean exclusive-or of COND1 and COND2. If only one of the arguments is non-nil, return it; otherwise return nil. (fn COND1 COND2) (defalias 'xor #[514 "\204 \207\211?\205 \207" [] 3 (#$ . 8774)]) (byte-code "\300\301\302\303#\300\301\304\305#\306\301\307\310#\207" [function-put xor pure t side-effect-free error-free put byte-optimizer byte-compile-inline-expand] 6) #@169 Loop over a list. Evaluate BODY with VAR bound to each car from LIST, in turn. Then evaluate RESULT to get return value, default nil. (fn (VAR LIST [RESULT]) BODY...) (defalias 'dolist '(macro . #[385 ":\204\f \301\302\303D\"\210\304\305G\306#\204 \301\307\310GD\"\210\311\203N \312A@DC\313\312@\314DDC\315\316 \317DEC\"BBEAABBB\202\207 \312A@D@D\313\316@\314DE\315\316\317\nDEC\"BBBAA\205\204 \316@\320BBAABBBB\207" [lexical-binding signal wrong-type-argument consp <= 2 3 wrong-number-of-arguments (2 . 3) --dolist-tail-- let while car append setq cdr (nil)] 15 (#$ . 9167)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put dolist lisp-indent-function 1 put edebug-form-spec ((symbolp form &optional form) body)] 5) #@341 Loop a certain number of times. Evaluate BODY with VAR bound to successive integers running from 0, inclusive, to COUNT, exclusive. Finally RESULT is evaluated to get the return value (nil if RESULT is omitted). Using RESULT is deprecated, and may result in compilation warnings about unused variables. (fn (VAR COUNT [RESULT]) BODY...) (defalias 'dotimes '(macro . #[385 "\301\302A@\203J \303\304DDD\305\306E\304\n@DC\nBB\307\310DEFAA\205B \304 @DC\nAABBCBBB\262\202t \304D@DD\305\306@E\311\307@\310 @DEC\"BBAABBB\207" [lexical-binding --dotimes-limit-- 0 --dotimes-counter-- let while < setq 1+ append] 15 (#$ . 9949)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put dotimes lisp-indent-function 1 put edebug-form-spec dolist] 5) #@477 Do not evaluate any arguments, and return nil. If a `declare' form appears as the first form in the body of a `defun' or `defmacro' form, SPECS specifies various additional information about the function or macro; these go into effect during the evaluation of the `defun' or `defmacro' form. The possible values of SPECS are specified by `defun-declarations-alist' and `macro-declarations-alist'. For more information, see info node `(elisp)Declare Form'. (fn &rest SPECS) (defalias 'declare '(macro . #[128 "\300\207" [nil] 2 (#$ . 10750)])) #@200 Execute BODY; if an error occurs, return nil. Otherwise, return result of last form in BODY. See also `with-demoted-errors' that does something similar without silencing all errors. (fn &rest BODY) (defalias 'ignore-errors '(macro . #[128 "\300\301\302B\303BBB\207" [condition-case nil progn ((error nil))] 5 (#$ . 11303)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put ignore-errors edebug-form-spec t function-put lisp-indent-function 0] 4) #@183 Execute BODY; if the error CONDITION occurs, return nil. Otherwise, return result of last form in BODY. CONDITION can also be a list of error conditions. (fn CONDITION &rest BODY) (defalias 'ignore-error '(macro . #[385 "\300\301\302B\303BF\207" [condition-case nil progn (nil)] 7 (#$ . 11775)])) (byte-code "\300\301\302\303#\210\304\301\305\306#\300\207" [put ignore-error edebug-form-spec t function-put lisp-indent-function 1] 4) #@75 Number used to construct the name of the next symbol created by `gensym'. (defvar gensym-counter 0 (#$ . 12219)) #@155 Return a new uninterned symbol. The name is made by appending `gensym-counter' to PREFIX. PREFIX is a string, and defaults to "g". (fn &optional PREFIX) (defalias 'gensym #[256 "\211T\301\302\303\206\f \304#!\207" [gensym-counter make-symbol format "%s%d" "g"] 7 (#$ . 12339)]) #@115 Do nothing and return nil. This function accepts any number of ARGUMENTS, but ignores them. (fn &rest ARGUMENTS) (defalias 'ignore #[128 "\300\207" [nil] 2 (#$ . 12629) nil]) #@492 Signal an error, making a message by passing ARGS to `format-message'. Errors cause entry to the debugger when `debug-on-error' is non-nil. This can be overridden by `debug-ignored-errors'. To signal with MESSAGE without interpreting format characters like `%', `\=`' and `\='', use (error "%s" MESSAGE). In Emacs, the convention is that error messages start with a capital letter but *do not* end with a period. Please follow this convention for the sake of consistency. (fn &rest ARGS) (defalias 'error #[128 "\300\301\302\303\"C\"\207" [signal error apply format-message] 6 (#$ . 12812)]) (set-advertised-calling-convention 'error '(string &rest args) "23.1") #@709 Signal a user error, making a message by passing ARGS to `format-message'. This is like `error' except that a user error (or "pilot error") comes from an incorrect manipulation by the user, not from an actual problem. In contrast with other errors, user errors normally do not cause entry to the debugger, even when `debug-on-error' is non-nil. This can be overridden by `debug-ignored-errors'. To signal with MESSAGE without interpreting format characters like `%', `\=`' and `\='', use (user-error "%s" MESSAGE). In Emacs, the convention is that error messages start with a capital letter but *do not* end with a period. Please follow this convention for the sake of consistency. (fn FORMAT &rest ARGS) (defalias 'user-error #[385 "\300\301\302\303#C\"\207" [signal user-error apply format-message] 8 (#$ . 13486)]) #@294 Define NAME as a new error signal. MESSAGE is a string that will be output to the echo area if such an error is signaled without being caught by a `condition-case'. PARENT is either a signal or a list of signals from which it inherits. Defaults to `error'. (fn NAME MESSAGE &optional PARENT) (defalias 'define-error #[770 "\211\204 \300\262\211:\203 \301\302\303\304\"\"\202 \211\305NB\306\305\307\310B!!#\210\2052 \306\311#\207" [error apply append mapcar #[257 "\211\300N\206 \301\302\"B\207" [error-conditions error "Unknown signal `%s'"] 5 "\n\n(fn PARENT)"] error-conditions put delete-dups copy-sequence error-message] 11 (#$ . 14316)]) #@158 Return non-nil if OBJECT seems to be a frame configuration. Any list whose car is `frame-configuration' is assumed to be a frame configuration. (fn OBJECT) (defalias 'frame-configuration-p #[257 "\211:\205 \211@\300=\207" [frame-configuration] 3 (#$ . 14984)]) #@294 Return a function that is a partial application of FUN to ARGS. ARGS is a list of the first N arguments to pass to FUN. The result is a new function which does the same as FUN, except that the first N arguments are fixed at the values with which this function was called. (fn FUN &rest ARGS) (defalias 'apply-partially #[385 "\300\301\302\303\304\"\305\"\306\307%\207" [make-byte-code 128 "\302\300\303\301\"\"\207" vconcat vector [apply append] 6 "\n\n(fn &rest ARGS2)"] 9 (#$ . 15254)]) #@42 Return t if NUMBER is zero. (fn NUMBER) (defalias 'zerop #[257 "\211\300U\207" [0] 3 (#$ . 15755)]) (byte-code "\300\301\302\303#\300\207" [function-put zerop compiler-macro zerop--anon-cmacro] 4) #@17 (fn _ NUMBER) (defalias 'zerop--anon-cmacro #[514 "\300\301E\207" [= 0] 5 (#$ . 15959)]) #@46 Return t if OBJECT is a fixnum. (fn OBJECT) (defalias 'fixnump #[257 "\211\250\205 X\205 \211 X\207" [most-negative-fixnum most-positive-fixnum] 3 (#$ . 16057)]) #@46 Return t if OBJECT is a bignum. (fn OBJECT) (defalias 'bignump #[257 "\211\250\205 \300!?\207" [fixnump] 3 (#$ . 16230)]) #@263 Return VALUE with its bits shifted left by COUNT. If COUNT is negative, shifting is actually to the right. In this case, if VALUE is a negative fixnum treat it as unsigned, i.e., subtract 2 * most-negative-fixnum from VALUE before shifting it. (fn VALUE COUNT) (defalias 'lsh #[514 "\302W\203&