%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/share/emacs/27.2/lisp/emacs-lisp/
Upload File :
Create Path :
Current File : //usr/local/share/emacs/27.2/lisp/emacs-lisp/subr-x.elc

;ELC
;;; Compiled
;;; in Emacs version 27.2
;;; with all optimizations.

;;; This file uses dynamic docstrings, first added in Emacs 19.29.

;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


#@205 Internal implementation for `thread-first' and `thread-last'.
When Argument FIRST? is non-nil argument is threaded first, else
last.  FORMS are the expressions to be threaded.

(fn FIRST\=\? &rest FORMS)
(defalias 'internal--thread-argument '(macro . #[385 "\211:\203_\211@A\211:\203\\\211@\211:\203D\211@AA\211\300\f\211\2030BB\2028\301C\"BBBB\266\204\266\203\202WA\211\300	DBBB\266\203\262\262\202^@\207\211@\207" [internal--thread-argument append] 18 (#$ . 409)]))
#@283 Thread FORMS elements as the first argument of their successor.
Example:
    (thread-first
      5
      (+ 20)
      (/ 25)
      -
      (+ 40))
Is equivalent to:
    (+ (- (/ (+ 5 20) 25)) 40)
Note how the single `-' got converted into a list before
threading.

(fn &rest FORMS)
(defalias 'thread-first '(macro . #[128 "\300\301BB\207" [internal--thread-argument t] 4 (#$ . 919)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put thread-first lisp-indent-function 1 put edebug-form-spec (form &rest [&or symbolp (sexp &rest form)])] 5)
#@281 Thread FORMS elements as the last argument of their successor.
Example:
    (thread-last
      5
      (+ 20)
      (/ 25)
      -
      (+ 40))
Is equivalent to:
    (+ 40 (- (/ 25 (+ 20 5))))
Note how the single `-' got converted into a list before
threading.

(fn &rest FORMS)
(defalias 'thread-last '(macro . #[128 "\300\301BB\207" [internal--thread-argument nil] 4 (#$ . 1484)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put thread-last lisp-indent-function 1 put edebug-form-spec thread-first] 5)
#@116 Wrap ELT in a list if it is not one.
If ELT is of the form ((EXPR)), listify (EXPR) with a dummy symbol.

(fn ELT)
(defalias 'internal--listify #[257 "\2119\203	\211D\207\211A\204\300\301!@D\207\207" [make-symbol "s"] 3 (#$ . 2016)])
(put 'internal--listify 'byte-optimizer 'byte-compile-inline-expand)
#@49 Check BINDING is properly formed.

(fn BINDING)
(defalias 'internal--check-binding #[257 "\211G\300V\203\301\302\303B\"\210\207" [2 signal error "`let' bindings can have only one value-form"] 5 (#$ . 2330)])
(put 'internal--check-binding 'byte-optimizer 'byte-compile-inline-expand)
#@85 Build the conditional value form for BINDING using PREV-VAR.

(fn BINDING PREV-VAR)
(defalias 'internal--build-binding-value-form #[514 "@\211\300A@ED\207" [and] 7 (#$ . 2622)])
(put 'internal--build-binding-value-form 'byte-optimizer 'byte-compile-inline-expand)
#@72 Check and build a single BINDING with PREV-VAR.

(fn BINDING PREV-VAR)
(defalias 'internal--build-binding #[514 "\2119\203\211D\262\202\211A\204\300\301!@D\262\211G\302V\203)\303\304\305B\"\210@\211\306A@ED\207" [make-symbol "s" 2 signal error "`let' bindings can have only one value-form" and] 9 (#$ . 2895)])
#@70 Check and build conditional value forms for BINDINGS.

(fn BINDINGS)
(defalias 'internal--build-bindings #[257 "\300C\301\302\303\304\305\306!\307\"\310\311%\"\207" [t mapcar make-byte-code 257 "\301\300\242\"\300@\240\210\211\207" vconcat vector [internal--build-binding] 4 "\n\n(fn BINDING)"] 9 (#$ . 3229)])
#@187 Bind variables according to VARLIST and evaluate THEN or ELSE.
This is like `if-let' but doesn't handle a VARLIST of the form
(SYMBOL SOMETHING) specially.

(fn VARLIST THEN &rest ELSE)
(defalias 'if-let* '(macro . #[642 "\203\300\301!\211\262\302\303!@@BBBE\207\300\304E\207" [let* internal--build-bindings if last nil] 9 (#$ . 3552)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put if-let* lisp-indent-function 2 put edebug-form-spec ((&rest [&or symbolp (symbolp form) (form)]) form body)] 5)
#@190 Bind variables according to VARLIST and conditionally evaluate BODY.
This is like `when-let' but doesn't handle a VARLIST of the form
(SYMBOL SOMETHING) specially.

(fn VARLIST &rest BODY)
(defalias 'when-let* '(macro . #[385 "\300\301!E\207" [if-let* macroexp-progn] 6 (#$ . 4085)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put when-let* lisp-indent-function 1 put edebug-form-spec if-let*] 5)
#@199 Bind variables according to VARLIST and conditionally evaluate BODY.
Like `when-let*', except if BODY is empty and all the bindings
are non-nil, then the result is non-nil.

(fn VARLIST &rest BODY)
(defalias 'and-let* '(macro . #[385 "\300\203\"\301\302!\211\262\303\304!@@\211\262\206CBBE\202+\301\300\206)\305BB\207" [nil let* internal--build-bindings when last (t)] 8 (#$ . 4511)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put and-let* lisp-indent-function 1 put edebug-form-spec ((&rest [&or symbolp (symbolp form) (form)]) body)] 5)
#@778 Bind variables according to SPEC and evaluate THEN or ELSE.
Evaluate each binding in turn, as in `let*', stopping if a
binding value is nil.  If all are non-nil return the value of
THEN, otherwise the last form in ELSE.

Each element of SPEC is a list (SYMBOL VALUEFORM) that binds
SYMBOL to the value of VALUEFORM.  An element can additionally be
of the form (VALUEFORM), which is evaluated and checked for nil;
i.e. SYMBOL can be omitted if only the test result is of
interest.  It can also be of the form SYMBOL, then the binding of
SYMBOL is checked for nil.

As a special case, interprets a SPEC of the form (SYMBOL SOMETHING)
like ((SYMBOL SOMETHING)).  This exists for backward compatibility
with an old syntax that accepted only one binding.

(fn SPEC THEN &rest ELSE)
(defalias 'if-let '(macro . #[642 "G\300X\203@<\204C\262\301\302!F\207" [2 if-let* macroexp-progn] 8 (#$ . 5092)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put if-let lisp-indent-function 2 put edebug-form-spec ([&or (&rest [&or symbolp (symbolp form) (form)]) (symbolp form)] form body)] 5)
#@271 Bind variables according to SPEC and conditionally evaluate BODY.
Evaluate each binding in turn, stopping if a binding value is nil.
If all are non-nil, return the value of the last form in BODY.

The variable list SPEC is the same as in `if-let'.

(fn SPEC &rest BODY)
(defalias 'when-let '(macro . #[385 "\300\301!E\207" [if-let macroexp-progn] 6 (#$ . 6201)]))
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put when-let lisp-indent-function 1 put edebug-form-spec if-let] 5)
#@70 Check whether HASH-TABLE is empty (has 0 elements).

(fn HASH-TABLE)
(defalias 'hash-table-empty-p #[257 "\300!\301U\207" [hash-table-count 0] 3 (#$ . 6703)])
(put 'hash-table-empty-p 'byte-optimizer 'byte-compile-inline-expand)
#@55 Return a list of keys in HASH-TABLE.

(fn HASH-TABLE)
(defalias 'hash-table-keys #[257 "\300C\301\302\303\304\305\306!\307\"\310\311%\"\210\211\242\237\207" [nil maphash make-byte-code 514 "\300\300\242B\240\207" vconcat vector [] 5 "\n\n(fn K --CL-VAR--)"] 9 (#$ . 6939)])
(put 'hash-table-keys 'byte-optimizer 'byte-compile-inline-expand)
#@57 Return a list of values in HASH-TABLE.

(fn HASH-TABLE)
(defalias 'hash-table-values #[257 "\300C\301\302\303\304\305\306!\307\"\310\311%\"\210\211\242\237\207" [nil maphash make-byte-code 514 "\300\300\242B\240\207" vconcat vector [] 5 "\n\n(fn --CL-VAR-- V)"] 9 (#$ . 7290)])
(put 'hash-table-values 'byte-optimizer 'byte-compile-inline-expand)
#@45 Check whether STRING is empty.

(fn STRING)
(defalias 'string-empty-p #[257 "\211\300\230\207" [""] 3 (#$ . 7647)])
(put 'string-empty-p 'byte-optimizer 'byte-compile-inline-expand)
#@69 Join all STRINGS using SEPARATOR.

(fn STRINGS &optional SEPARATOR)
(defalias 'string-join #[513 "\300\301#\207" [mapconcat identity] 6 (#$ . 7835)])
(byte-code "\300\301\302\303#\210\304\305\306\307#\210\310\305\306\311#\207" [put string-join byte-optimizer byte-compile-inline-expand defalias string-reverse reverse nil make-obsolete "25.1"] 4)
#@112 Trim STRING of leading string matching REGEXP.

REGEXP defaults to "[ \t\n\r]+".

(fn STRING &optional REGEXP)
(defalias 'string-trim-left #[513 "\300\301\206\302\303Q\"\203\304\305\225\"\207\207" [string-match "\\`\\(?:" "[ 	\n
]+" "\\)" substring 0] 6 (#$ . 8191)])
(put 'string-trim-left 'byte-optimizer 'byte-compile-inline-expand)
#@114 Trim STRING of trailing string matching REGEXP.

REGEXP defaults to  "[ \t\n\r]+".

(fn STRING &optional REGEXP)
(defalias 'string-trim-right #[513 "\301\206\302\303Q\304\305\306#)\266\203\211\203 \307\310#\202!\207" [inhibit-changing-match-data "\\(?:" "[ 	\n
]+" "\\)\\'" nil t string-match substring 0] 9 (#$ . 8542)])
(put 'string-trim-right 'byte-optimizer 'byte-compile-inline-expand)
#@175 Trim STRING of leading and trailing strings matching TRIM-LEFT and TRIM-RIGHT.

TRIM-LEFT and TRIM-RIGHT default to "[ \t\n\r]+".

(fn STRING &optional TRIM-LEFT TRIM-RIGHT)
(defalias 'string-trim #[769 "\301\206\302\303Q\304\305\306#)\266\203\211\203\"\307\310#\202#\266\203\306\311\206-\302\312Q\"\203:\307\310\225\"\207\207" [inhibit-changing-match-data "\\(?:" "[ 	\n
]+" "\\)\\'" nil t string-match substring 0 "\\`\\(?:" "\\)"] 12 (#$ . 8953)])
(put 'string-trim 'byte-optimizer 'byte-compile-inline-expand)
#@163 Check whether STRING is either empty or only whitespace.
The following characters count as whitespace here: space, tab, newline and
carriage return.

(fn STRING)
(defalias 'string-blank-p #[257 "\301\302\303\304#)\207" [inhibit-changing-match-data "\\`[ 	\n
]*\\'" nil t string-match] 8 (#$ . 9496)])
(put 'string-blank-p 'byte-optimizer 'byte-compile-inline-expand)
#@59 Remove PREFIX from STRING if present.

(fn PREFIX STRING)
(defalias 'string-remove-prefix #[514 "\300\"\203
\301G\"\207\207" [string-prefix-p substring] 5 (#$ . 9874)])
(put 'string-remove-prefix 'byte-optimizer 'byte-compile-inline-expand)
#@59 Remove SUFFIX from STRING if present.

(fn SUFFIX STRING)
(defalias 'string-remove-suffix #[514 "\300\"\203\301\302GGZ#\207\207" [string-suffix-p substring 0] 7 (#$ . 10126)])
(put 'string-remove-suffix 'byte-optimizer 'byte-compile-inline-expand)
#@656 Replace the region between BEG and END using REPLACE-FN.
REPLACE-FN runs on the current buffer narrowed to the region.  It
should return either a string or a buffer replacing the region.

The replacement is performed using `replace-buffer-contents'
which also describes the MAX-SECS and MAX-COSTS arguments and the
return value.

Note: If the replacement is a string, it'll be placed in a
temporary buffer so that `replace-buffer-contents' can operate on
it.  Therefore, if you already have the replacement in a buffer,
it makes no sense to convert it to a string using
`buffer-substring' or similar.

(fn BEG END REPLACE-FN &optional MAX-SECS MAX-COSTS)
(defalias 'replace-region-contents #[1283 "\212\214}\210eb\210 \300!\203\301#\202Bp\302\303!r\211q\210\304\305\306\307\310!\311\"\312$\216c\210pq\210\301#\262*\262\262\262*\207" [bufferp replace-buffer-contents generate-new-buffer " *temp*" make-byte-code 0 "\301\300!\205	\302\300!\207" vconcat vector [buffer-name kill-buffer] 2] 14 (#$ . 10388)])
(provide 'subr-x)

Zerion Mini Shell 1.0