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



(byte-code "\300\301!\210\300\302!\210\300\303!\210\304\305\306\307\310DD\311\312\313\314\315\316\317&	\210\304\320\306\307\321DD\322\312\313\314\315\316\317&	\207" [require cc-defs cc-engine cc-styles custom-declare-variable c-guess-offset-threshold funcall function #[0 "\300\207" [10] 1 #1=""] "Threshold of acceptable offsets when examining indent information.\nDiscard an examined offset if its absolute value is greater than this.\n\nThe offset of a line included in the indent information returned by\n`c-guess-basic-syntax'." :version "24.1" :type integer :group c c-guess-region-max #[0 "\300\207" [50000] 1 #1#] "The maximum region size for examining indent information with `c-guess'.\nIt takes a long time to examine indent information from a large region;\nthis option helps you limit that time.  nil means no limit."] 10)
#@34 Currently guessed offsets-alist.
(defvar c-guess-guessed-offsets-alist nil (#$ . 920))
#@33 Currently guessed basic-offset.
(defvar c-guess-guessed-basic-offset nil (#$ . 1013))
(defvar c-guess-accumulator nil)
(defconst c-guess-conversions '((c . c-lineup-C-comments) (inher-cont . c-lineup-multi-inher) (string . -1000) (comment-intro . c-lineup-comment) (arglist-cont-nonempty . c-lineup-arglist) (arglist-close . c-lineup-close-paren) (cpp-macro . -1000)))
#@330 Guess the style in the region up to `c-guess-region-max', and install it.

The style is given a name based on the file's absolute file name.

If given a prefix argument (or if the optional argument ACCUMULATE is
non-nil) then the previous guess is extended, otherwise a new guess is
made from scratch.

(fn &optional ACCUMULATE)
(defalias 'c-guess #[256 "\301ed\206 d^#\207" [c-guess-region-max c-guess-region] 5 (#$ . 1389) "P"])
#@265 Guess the style in the region up to `c-guess-region-max'; don't install it.

If given a prefix argument (or if the optional argument ACCUMULATE is
non-nil) then the previous guess is extended, otherwise a new guess is
made from scratch.

(fn &optional ACCUMULATE)
(defalias 'c-guess-no-install #[256 "\301ed\206 d^#\207" [c-guess-region-max c-guess-region-no-install] 5 (#$ . 1830) "P"])
#@317 Guess the style on the whole current buffer, and install it.

The style is given a name based on the file's absolute file name.

If given a prefix argument (or if the optional argument ACCUMULATE is
non-nil) then the previous guess is extended, otherwise a new guess is
made from scratch.

(fn &optional ACCUMULATE)
(defalias 'c-guess-buffer #[256 "\300ed#\207" [c-guess-region] 5 (#$ . 2228) "P"])
#@252 Guess the style on the whole current buffer; don't install it.

If given a prefix argument (or if the optional argument ACCUMULATE is
non-nil) then the previous guess is extended, otherwise a new guess is
made from scratch.

(fn &optional ACCUMULATE)
(defalias 'c-guess-buffer-no-install #[256 "\300ed#\207" [c-guess-region-no-install] 5 (#$ . 2635) "P"])
#@312 Guess the style on the region and install it.

The style is given a name based on the file's absolute file name.

If given a prefix argument (or if the optional argument ACCUMULATE is
non-nil) then the previous guess is extended, otherwise a new guess is
made from scratch.

(fn START END &optional ACCUMULATE)
(defalias 'c-guess-region #[770 "\300#\210\301 \207" [c-guess-region-no-install c-guess-install] 7 (#$ . 2999) "r\nP"])
(defalias 'c-guess-empty-line-p #[0 "\300 \301 =\207" [line-beginning-position line-end-position] 2])
(byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put c-guess-empty-line-p speed -1 put byte-optimizer byte-compile-inline-expand] 5)
#@831 Guess the style on the region; don't install it.

Every line of code in the region is examined and values for the following two
variables are guessed:

* `c-basic-offset', and
* the indentation values of the various syntactic symbols in
  `c-offsets-alist'.

The guessed values are put into `c-guess-guessed-basic-offset' and
`c-guess-guessed-offsets-alist'.

Frequencies of use are taken into account when guessing, so minor
inconsistencies in the indentation style shouldn't produce wrong guesses.

If given a prefix argument (or if the optional argument ACCUMULATE is
non-nil) then the previous examination is extended, otherwise a new
guess is made from scratch.

Note that the larger the region to guess in, the slower the guessing.
So you can limit the region with `c-guess-region-max'.

(fn START END &optional ACCUMULATE)
(defalias 'c-guess-region-no-install #[770 "\211\205 \303#\304!\211@\211A\211\207" [c-guess-accumulator c-guess-guessed-basic-offset c-guess-guessed-offsets-alist c-guess-examine c-guess-guess] 8 (#$ . 3688) "r\nP"])
#@30 

(fn START END ACCUMULATOR)
(defalias 'c-guess-examine #[771 "\211C\303\304!\205 \304\305#\212b\210`W\203X \306 \307 =\2048 \310\311\312\"\313 \314\211\314\311\315\"\216\316 ,\262\"\210\211\203R \211`\317\247\203K @Y\205P \320#\266\321y\210\202 )\211\203a \322!\210\210\323\242!\207" [buffer-undo-list inhibit-read-only inhibit-modification-hooks fboundp make-progress-reporter "Examining Indentation " line-beginning-position line-end-position mapc make-closure #[257 "\300\301\300\242\"\206 \300\242\240\207" [V0 c-guess-accumulate] 5 "\n\n(fn S)"] buffer-modified-p t #[0 "\300?\205 \301\302!\207" [V0 restore-buffer-modified-p nil] 2] c-guess-basic-syntax nil progress-reporter-do-update 1 progress-reporter-done c-guess-sort-accumulator] 13 (#$ . 4750)])
#@20 

(fn ACCUMULATOR)
(defalias 'c-guess-guess #[257 "\301!\302!\303\"\304\305!\"B\207" [c-guess-conversions c-guess-make-basic-offset c-guess-make-offsets-alist c-guess-symbolize-offsets-alist c-guess-merge-offsets-alists copy-tree] 7 (#$ . 5541)])
#@15 

(fn RELPOS)
(defalias 'c-guess-current-offset #[257 "\300 \210i\212b\210i)Z\207" [back-to-indentation] 3 (#$ . 5802)])
#@35 

(fn ACCUMULATOR SYNTAX-ELEMENT)
(defalias 'c-guess-accumulate #[514 "\211@A@\211\247\205 \301!\302!W\205 \303#\262\207" [c-guess-offset-threshold c-guess-current-offset abs c-guess-accumulate-offset] 9 (#$ . 5930)])
#@34 

(fn ACCUMULATOR SYMBOL OFFSET)
(defalias 'c-guess-accumulate-offset #[771 "\300\"\211A\301\203+ \300\"\262\211\203 \211AT\241\210\202) \302BB\262\241\210\207\302BCBB\207" [assoc nil 1] 9 (#$ . 6164)])
#@20 

(fn ACCUMULATOR)
(defalias 'c-guess-sort-accumulator #[257 "\300\301\"\207" [mapcar #[257 "\211@A\300\301\"B\207" [sort #[514 "AAV\203\n \300\207AA=\205 @@W\207" [t] 4 "\n\n(fn A B)"]] 7 "\n\n(fn ENTRY)"]] 4 (#$ . 6391)])
#@20 

(fn ACCUMULATOR)
(defalias 'c-guess-make-offsets-alist #[257 "\300\301\"\207" [mapcar #[257 "\211@A@@B\207" [] 3 "\n\n(fn ENTRY)"]] 4 (#$ . 6632)])
#@20 

(fn STRONG WEAK)
(defalias 'c-guess-merge-offsets-alists #[514 "C\300\301\302\"\"\210\211\242\207" [mapc make-closure #[257 "\301@\300\242\"?\205 \300\300\242B\240\207" [V0 assoc] 4 "\n\n(fn WEAK-ELT)"]] 7 (#$ . 6790)])
#@20 

(fn ACCUMULATOR)
(defalias 'c-guess-make-basic-offset #[257 "\300\301\302!\"\303\304\305\306\"\"\307\310\311\305\312\"!\"\305\313\314\"\"\315\2036 \211A@AW\203/ @\262A\262\202 \211@\207" [assq-delete-all c copy-tree apply append mapcar #[257 "\300\301A\"\207" [mapcar #[257 "\300@!AB\207" [abs] 3 "\n\n(fn ELT)"]] 4 "\n\n(fn ELTS)"] delete 0 delete-dups #[257 "\211@\207" [] 2 "\n\n(fn ELT)"] make-closure #[257 "\211\301\302\303\304\305\"\300\"\"B\207" [V0 apply + mapcar make-closure #[257 "\211@\300=\203\n \211A\207\301\207" [V0 0] 3 "\n\n(fn A)"]] 8 "\n\n(fn OFFSET)"] (nil . 0)] 9 (#$ . 7024)])
#@35 

(fn OFFSETS-ALIST BASIC-OFFSET)
(defalias 'c-guess-symbolize-offsets-alist #[514 "\300\301\302\"\"\207" [mapcar make-closure #[257 "\211@A\211\250\203 \301\300\"B\207\207" [V0 c-guess-symbolize-integer] 7 "\n\n(fn ELT)"]] 6 (#$ . 7650)])
#@25 

(fn INT BASIC-OFFSET)
(defalias 'c-guess-symbolize-integer #[514 "\300!=\203 \301\207\211=\203 \302\207\303_=\203 \304\207\211\303_=\203' \305\207\303_=\2031 \306\207\303_=\203; \302\207\207" [abs + - 2 ++ -- *] 6 (#$ . 7903)])
(defalias 'c-guess-style-name #[0 "\300\301\302 \"\207" [format "*c-guess*:%s" buffer-file-name] 3])
#@35 

(fn BASIC-OFFSET OFFSETS-ALIST)
(defalias 'c-guess-make-style #[514 "\205 \301\"\302B\300BD\262\207" [c-offsets-alist c-guess-merge-offsets-alists c-basic-offset] 6 (#$ . 8255)])
#@390 Install the latest guessed style into the current buffer.
(This guessed style is a combination of `c-guess-guessed-basic-offset',
`c-guess-guessed-offsets-alist' and `c-offsets-alist'.)

The style is entered into CC Mode's style system by
`c-add-style'.  Its name is either STYLE-NAME, or a name based on
the absolute file name of the file if STYLE-NAME is nil.

(fn &optional STYLE-NAME)
(defalias 'c-guess-install #[256 "\302	\"\211\203 \303\232\204 \206 \304 \305\306#\210\307\310\"\207\311\312!\207" [c-guess-guessed-basic-offset c-guess-guessed-offsets-alist c-guess-make-style "" c-guess-style-name c-add-style t message "Style \"%s\" is installed" error "Not yet guessed"] 7 (#$ . 8450) "sNew style name (empty for default name): "])
#@29 Show `c-guess-accumulator'.
(defalias 'c-guess-dump-accumulator #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!\210+\211\316!\317!\210)\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*Accumulated Examined Indent Information*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook pp internal-temp-output-buffer-show standard-output c-guess-accumulator] 6 (#$ . 9206) nil])
#@30 Reset `c-guess-accumulator'.
(defalias 'c-guess-reset-accumulator #[0 "\301\211\207" [c-guess-accumulator nil] 2 (#$ . 9734) nil])
#@74 Show `c-guess-guessed-basic-offset' and `c-guess-guessed-offsets-alist'.
(defalias 'c-guess-dump-guessed-values #[0 "r\306\307!q\210p\310 \210\311\211\312\211\312\313 \210\314\315!\210+\211\316\317!\210\320!\210\316\321!\210\316\322!\210\320!\323!\210)\207" [default-directory buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only get-buffer-create "*Guessed Values*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook princ "basic-offset: \n	" pp "\n\n" "offsets-alist: \n" internal-temp-output-buffer-show standard-output c-guess-guessed-basic-offset c-guess-guessed-offsets-alist] 6 (#$ . 9872) nil])
#@206 Show the guessed style.
`pp' is used to print the style but if PRINTER is given,
PRINTER is used instead.  If PRINTER is not nil, it
is called with one argument, the guessed style.

(fn &optional PRINTER)
(defalias 'c-guess-dump-guessed-style #[256 "\306	\"\211\203= \nr\307\310!q\210p\311 \210\312\211\313\211\313\314 \210\315\316!\210+\211\2034 \2025 \317!\320!\210)\207\321\322!\207" [c-guess-guessed-basic-offset c-guess-guessed-offsets-alist default-directory buffer-read-only buffer-file-name buffer-undo-list c-guess-make-style get-buffer-create "*Guessed Style*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook pp internal-temp-output-buffer-show error "Not yet guessed" inhibit-modification-hooks inhibit-read-only standard-output] 8 (#$ . 10566) nil])
(defalias 'c-guess-guessed-syntactic-symbols #[0 "\302\211\203 @\262A\262@	\236\204 @B\262\202 \207" [c-guess-guessed-offsets-alist c-guess-conversions nil] 5])
#@40 

(fn STYLE GUESSED-SYNTACTIC-SYMBOLS)
(defalias 'c-guess-view-reorder-offsets-alist-in-style #[514 "\300!\262\301\236\211\302A\303\304\"\"\241\266\207" [copy-tree c-offsets-alist sort make-closure #[514 "@\300>@\300>\203 \211\204 \204 \211\204 @@\231\207\203$ \301\207\211\205) \302\207" [V0 t nil] 6 "\n\n(fn A B)"]] 9 (#$ . 11553)])
#@34 

(fn GUESSED-SYNTACTIC-SYMBOLS)
(defalias 'c-guess-view-mark-guessed-entries #[257 "\300B\211\205* eb\210\301\302\303@!\304Q\305\306#\203# \307\310!\210\311\305!\210\312c\210\211A\262\202 \207" [c-basic-offset search-forward "(" symbol-name " " nil t move-end-of-line 1 comment-dwim " Guessed value"] 6 (#$ . 11914)])
#@414 Emit Emacs Lisp code which defines the last guessed style.
So you can put the code into .emacs if you prefer the
guessed code.
"STYLE NAME HERE" is used as the name for the style in the
emitted code. If WITH-NAME is given, it is used instead.
WITH-NAME is expected as a string but if this function
called interactively with prefix argument, the value for
WITH-NAME is asked to the user.

(fn &optional WITH-NAME)
(defalias 'c-guess-view #[256 "\211;\203	 \211\202 \211\203 \303\304!\202 \305\306 \230\203$ \307	\n\"\202% \211\310\311\312#!\207" [c-indentation-style major-mode c-default-style read-from-minibuffer "New style name: " "STYLE NAME HERE" c-guess-style-name cc-choose-style-for-mode c-guess-dump-guessed-style make-closure #[257 "\303 \304\305\300\306\301\307\"BDE!\210r\nq\210\310 \210\311!\210\312 )\207" [V0 V1 standard-output c-guess-guessed-syntactic-symbols pp c-add-style quote c-guess-view-reorder-offsets-alist-in-style lisp-interaction-mode c-guess-view-mark-guessed-entries buffer-enable-undo] 10 "\n\n(fn STYLE)"]] 10 (#$ . 12244) "P"])
(provide 'cc-guess)
