;ELC   
;;; Compiled
;;; in Emacs version 29.4
;;; with all optimizations.


#@2311 Return a string based on FORMAT and SPECIFICATION.
FORMAT is a string containing `format'-like specs like "su - %u %k".
SPECIFICATION is an alist mapping format specification characters
to their substitutions.

For instance:

  (format-spec "su - %u %l"
               \=`((?u . ,(user-login-name))
                 (?l . "ls")))

Each %-spec may contain optional flag, width, and precision
specifiers, as follows:

  %<flags><width><precision>character

The following flags are allowed:

* 0: Pad to the width, if given, with zeros instead of spaces.
* -: Pad to the width, if given, on the right instead of the left.
* <: Truncate to the width and precision, if given, on the left.
* >: Truncate to the width and precision, if given, on the right.
* ^: Convert to upper case.
* _: Convert to lower case.

The width and precision specifiers behave like the corresponding
ones in `format' when applied to %s.

For example, "%<010b" means "substitute into the output the
value associated with ?b in SPECIFICATION, either padding it with
leading zeros or truncating leading characters until it's ten
characters wide".

the substitution for a specification character can also be a
function, taking no arguments and returning a string to be used
for the replacement.  It will only be called if FORMAT uses that
character.  For example:

  (format-spec "%n"
               \=`((?n . ,(lambda ()
                          (read-number "Number: ")))))

Note that it is best to make sure the function is not quoted,
like above, so that it is compiled by the byte-compiler.

Any text properties of FORMAT are copied to the result, with any
text properties of a %-spec itself copied to its substitution.

IGNORE-MISSING indicates how to handle %-spec characters not
present in SPECIFICATION.  If it is nil or omitted, emit an
error; if it is the symbol `ignore', leave those %-specs verbatim
in the result, including their text properties, if any; if it is
the symbol `delete', remove those %-specs from the result;
otherwise do the same as for the symbol `ignore', but also leave
any occurrences of "%%" in FORMAT verbatim in the result.

If SPLIT, instead of returning a single string, a list of strings
is returned, where each format spec is its own element.

(fn FORMAT SPECIFICATION &optional IGNORE-MISSING SPLIT)
(defalias 'format-spec #[1026 "\300\301\302\"r\211q\210\303\304\"\216e\305c\210eb\210\306\307\305\302#\203 g\310U\2031 \311>\203 \312\313!\210\202 \314\315!\203`\316\225\317\313!\317\320!\317\321!\322\317\323!!\211\f\236A\324!\203X \211 \202Y \211\262\n\203t S	U\204t S{B\262\211\203\256 \325\326\327\"\330!\205\212 \331!\205\225 \332\313\"@$\262\333!\210`G\\|\210S|\210\202\376 \334\267\202\307 S|\210\202\376 \335\336\"\210\202\376 \211\203\376 \325\326\327\"\330!\205\335 \331!\205\350 \332\313\"@$\262\333!\210`G\\|\210S|\210\n\203S`{B\262`\262	\266\202 \204 \335\337!\210\202 \204+\340 \266\202\202<dU\2048d{B\262\211\237\266\202*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205	 \302\300!\207" [V0 buffer-name kill-buffer] 2] nil search-forward "%" 37 (nil ignore delete) delete-char 1 looking-at "\\([ 0<>^_-]+\\)?\\([[:digit:]]+\\)?\\(\\.[[:digit:]]+\\)?\\([[:alpha:]]\\)" 0 match-string 2 3 string-to-char 4 functionp format-spec--do-flags format "%s" format-spec--parse-flags string-to-number read-from-string insert-and-inherit #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (delete 181 nil 191)) error "Invalid format character: `%%%c'" "Invalid format string" buffer-string] 21 (#$ . 85)])#@251 Return STR formatted according to FLAGS, WIDTH, and TRUNC.
FLAGS is a list of keywords as returned by
`format-spec--parse-flags'.  WIDTH and TRUNC are either nil or
string widths corresponding to `format-spec' specifiers.

(fn STR FLAGS WIDTH TRUNC)
(defalias 'format-spec--do-flags #[1028 "\300\211\2033 \301!\262\211Z\211\262\302V\2033 \303>\203& \304#\202. \305\211\306\"\"\262\262\203\237 \211\206? \301!\262Z\262\302U\204\237 \302V\203z \307\310>\203_ \311\202` \312\"\313>\203o P\202s \211P\262\266\202\241 \303>\203\216 \304[#\262\266\202\241 \314>\203\237 \305\211\306\"\"\262\266\315>\203\252 \226\207\316>\203\263 \227\207\207" [nil string-width 0 :chop-left truncate-string-to-width format "%%.%ds" make-string :pad-zero 48 32 :pad-right :chop-right :upcase :downcase] 10 (#$ . 3755)])#@75 Convert sequence of FLAGS to list of human-readable keywords.

(fn FLAGS)
(defalias 'format-spec--parse-flags #[257 "\300\301\"\207" [mapcan #[257 "\211\300\267\202 \301C\207\302C\207\303C\207\304C\207\305C\207\306C\207\307\207" [#s(hash-table size 6 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (48 6 45 9 60 12 62 15 94 18 95 21)) :pad-zero :pad-right :chop-left :chop-right :upcase :downcase nil] 3 "\n\n(fn CHAR)"]] 4 (#$ . 4614)])#@135 Return an alist suitable for use in `format-spec' based on PAIRS.
PAIRS is a property list with characters as keys.

(fn &rest PAIRS)
(defalias 'format-spec-make #[128 "\300\203  A\204 \301\302!\210@A@BB\262AA\262\202 \211\237\207" [nil error "Invalid list of pairs"] 4 (#$ . 5077)])
(provide 'format-spec)
