;ELC   
;;; Compiled
;;; in Emacs version 30.2
;;; 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\342 g\310U\2031 \311>\203 \312\313!\210\202 \314\315!\203\327 `\316\225\317\313!\317\320!\317\321!\322\317\323!!\211\f\236A\324!\203W \211 \262\n\203p S	U\204p S{B\262\211\203\252 \325\326\327\"\330!\205\206 \331!\205\221 \332\313\"@$\262\333!\210`G\\|\210S|\210\202\300 \334\267\202\300 S|\210\202\300 \335\336\"\210\n\203\322 S`{B\262`\262	\266\202 \204 \335\337!\210\202 \204\353 \340 \202\372 dU\204\370 d{B\262\211\237*\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 test eq purecopy t data (delete 177 nil 187)) 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\2032 \301!\262\211Z\211\262\302V\2032 \303>\203& \304#\202. \305\211\306\"\"\262\210\203\236 \211\206> \301!\262Z\262\302U\204\236 \302V\203y \307\310>\203^ \311\202_ \312\"\313>\203n P\202r \211P\262\266\202\240 \303>\203\215 \304[#\262\266\202\240 \314>\203\236 \305\211\306\"\"\262\266\315>\203\251 \226\207\316>\203\262 \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 (#$ . 3576)])#@75 Convert sequence of FLAGS to list of human-readable keywords.

(fn FLAGS)#@13 

(fn CHAR)
(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 test eq 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 (#$ . 4513)]] 4 (#$ . 4434)])#@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 \237\207" [nil error "Invalid list of pairs"] 4 (#$ . 4863)])
(provide 'format-spec)
