;ELC ;;; compiled by jwz@thalidomide on Wed May 25 21:54:15 1994 ;;; from file /u/jwz/emacs19/lisp/modes/cc-mode.el ;;; emacs version 19.10 Lucid. ;;; bytecomp version 2.24; 26-Apr-94. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "This file was compiled for Emacs 19.")) (defvar c-inhibit-startup-warnings-p nil "\ *If non-nil, inhibits start up compatibility warnings.") (defvar c-strict-semantics-p nil "\ *If non-nil, all semantic symbols must be found in `c-offsets-alist'. If the semantic symbol for a particular line does not match a symbol in the offsets alist, an error is generated, otherwise no error is reported and the semantic symbol is ignored.") (defvar c-echo-semantic-information-p nil "\ *If non-nil, semantic info is echoed when the line is indented.") (defvar c-basic-offset 4 "\ *Amount of basic offset used by + and - symbols in `c-offsets-alist'.") (defconst c-offsets-alist-default '((string . -1000) (c . c-lineup-C-comments) (defun-open . 0) (defun-close . 0) (defun-block-intro . +) (class-open . 0) (class-close . 0) (inline-open . +) (inline-close . 0) (c++-funcdecl-cont . -) (knr-argdecl-intro . +) (knr-argdecl . 0) (topmost-intro . 0) (topmost-intro-cont . 0) (member-init-intro . +) (member-init-cont . 0) (inher-intro . +) (inher-cont . c-lineup-multi-inher) (block-open . 0) (block-close . 0) (brace-list-open . 0) (brace-list-close . 0) (brace-list-intro . +) (brace-list-entry . 0) (statement . 0) (statement-cont . +) (statement-block-intro . +) (statement-case-intro . +) (substatement . +) (substatement-open . +) (case-label . 0) (access-label . -) (label . 2) (do-while-closure . 0) (else-clause . 0) (comment-intro . c-lineup-comment) (arglist-intro . +) (arglist-cont . 0) (arglist-cont-nonempty . c-lineup-arglist) (arglist-close . +) (stream-op . c-lineup-streamop) (inclass . +) (cpp-macro . -1000) (friend . 0)) "\ Default settings for offsets of syntactic elements. Do not change this constant! See the variable `c-offsets-alist' for more information.") (defvar c-offsets-alist (copy-alist c-offsets-alist-default) "\ *Association list of syntactic element symbols and indentation offsets. As described below, each cons cell in this list has the form: (SYNTACTIC-SYMBOL . OFFSET) When a line is indented, cc-mode first determines the syntactic context of the line by generating a list of symbols called syntactic elements. This list can contain more than one syntactic element and the global variable `c-semantics' contains the context list for the line being indented. Each element in this list is actually a cons cell of the syntactic symbol and a buffer position. This buffer position is call the relative indent point for the line. Some syntactic symbols may not have a relative indent point associated with them. After the syntactic context list for a line is generated, cc-mode calculates the absolute indentation for the line by looking at each syntactic element in the list. First, it compares the syntactic element against the SYNTACTIC-SYMBOL's in `c-offsets-alist'. When it finds a match, it adds the OFFSET to the column of the relative indent point. The sum of this calculation for each element in the syntactic list is the absolute offset for line being indented. If the syntactic element does not match any in the `c-offsets-alist', an error is generated if `c-strict-semantics-p' is non-nil, otherwise the element is ignored. Actually, OFFSET can be an integer, a function, or the symbol `+' or `-', the latter designating positive or negative values of `c-basic-offset'. If OFFSET is a function, it is called with a single argument containing the cons of the syntactic element symbol and the relative indent point. The function should return an integer offset. Here is the current list of valid semantic element symbols: string -- inside multi-line string c -- inside a multi-line C style block comment defun-open -- brace that opens a function definition defun-close -- brace that closes a function definition defun-block-intro -- the first line in a top-level defun class-open -- brace that opens a class definition class-close -- brace that closes a class definition inline-open -- brace that opens an in-class inline method inline-close -- brace that closes an in-class inline method c++-funcdecl-cont -- the nether region between a C++ function declaration and the defun opening brace knr-argdecl-intro -- first line of a K&R C argument declaration knr-argdecl -- subsequent lines in a K&R C argument declaration topmost-intro -- the first line in a topmost construct definition topmost-intro-cont -- topmost definition continuation lines member-init-intro -- first line in a member initialization list member-init-cont -- subsequent member initialization list lines inher-intro -- first line of a multiple inheritance list inher-cont -- subsequent multiple inheritance lines block-open -- statement block open brace block-close -- statement block close brace brace-list-open -- open brace of an enum or static array list brace-list-close -- close brace of an enum or static array list brace-list-intro -- first line in an enum or static array list brace-list-entry -- subsequent lines in an enum or static array list statement -- a C/C++ statement statement-cont -- a continuation of a C/C++ statement statement-block-intro -- the first line in a new statement block statement-case-intro -- the first line in a case `block' substatement -- the first line after an if/while/for/do/else substatement-open -- the brace that opens a substatement block case-label -- a case or default label access-label -- C++ private/protected/public access label label -- any non-special C/C++ label do-while-closure -- the `while' that ends a do/while construct else-clause -- the `else' of an if/else construct comment-intro -- a line containing only a comment introduction arglist-intro -- the first line in an argument list arglist-cont -- subsequent argument list lines when no arguments follow on the same line as the the arglist opening paren arglist-cont-nonempty -- subsequent argument list lines when at least one argument follows on the same line as the arglist opening paren arglist-close -- the solo close paren of an argument list stream-op -- lines continuing a stream operator construct inclass -- the construct is nested inside a class definition cpp-macro -- the start of a cpp macro friend -- a C++ friend declaration ") (defvar c-tab-always-indent t "\ *Controls the operation of the TAB key. If t, hitting TAB always just indents the current line. If nil, hitting TAB indents the current line if point is at the left margin or in the line's indentation, otherwise it insert a real tab character. If other than nil or t, then tab is inserted only within literals -- defined as comments and strings -- and inside preprocessor directives, but line is always reindented. Note that indentation of lines containing only comments is also controlled by the `c-comment-only-line-offset' variable.") (defvar c-comment-only-line-offset 0 "\ *Extra offset for line which contains only the start of a comment. Can contain an integer or a cons cell of the form: (NON-ANCHORED-OFFSET . ANCHORED-OFFSET) Where NON-ANCHORED-OFFSET is the amount of offset given to non-column-zero anchored comment-only lines, and ANCHORED-OFFSET is the amount of offset to give column-zero anchored comment-only lines. Just an integer as value is equivalent to ( . 0)") (defvar c-block-comments-indent-p nil "\ *Specifies how to re-indent C style block comments. 4 styles of C block comments are supported. If this variable is nil, then styles 1-3 are supported. If this variable is non-nil, style 4 only is supported. Note that this currently has *no* effect on how comments are lined up or whether stars are inserted when C comments are auto-filled. In any case, you still have to insert the stars manually. style 1: style 2: style 3: style 4: /* /* /* /* blah * blah ** blah blah blah * blah ** blah blah */ */ */ */") (defvar c-cleanup-list '(scope-operator) "\ *List of various C/C++ constructs to \"clean up\". These clean ups only take place when the auto-newline feature is turned on, as evidenced by the `/a' or `/ah' appearing next to the mode name. Valid symbols are: brace-else-brace -- cleans up `} else {' constructs by placing entire construct on a single line. This clean up only takes place when there is nothing but white space between the braces and the `else'. Clean up occurs when the open-brace after the `else' is typed. empty-defun-braces -- cleans up empty defun braces by placing the braces on the same line. Clean up occurs when the defun closing brace is typed. defun-close-semi -- cleans up the terminating semi-colon on defuns by placing the semi-colon on the same line as the closing brace. Clean up occurs when the semi-colon is typed. list-close-comma -- cleans up commas following braces in array and aggregate initializers. Clean up occurs when the comma is typed. scope-operator -- cleans up double colons which may designate a C++ scope operator split across multiple lines. Note that certain C++ constructs can generate ambiguous situations. This clean up only takes place when there is nothing but whitespace between colons. Clean up occurs when the second colon is typed.") (defvar c-hanging-braces-alist '((brace-list-open) (substatement-open after)) "\ *Controls the insertion of newlines before and after braces. This variable contains an association list with elements of the following form: (SYNTACTIC-SYMBOL . (NL-LIST)). SYNTACTIC-SYMBOL can be any of: defun-open, defun-cloase, class-open, class-close, inline-open, inline-close, block-open, block-close, substatement-open, brace-list-open, or brace-list-close. See `c-offsets-alist' for details. NL-LIST can contain any combination of the symbols `before' or `after'. It also be nil. When a brace is inserted, the syntactic context it defines is looked up in this list, and if found, the NL-LIST is used to determine where newlines are inserted. If not found, the default is to insert a newline both before and after braces.") (defvar c-hanging-colons-alist nil "\ *Controls the insertion of newlines before and after certain colons. This variable contains an association list with elements of the following form: (SYNTACTIC-SYMBOL . (NL-LIST)). SYNTACTIC-SYMBOL can be any of: member-init-intro, inher-intro, case-label, label, and access-label. See `c-offsets-alist' for details. NL-LIST can contain any combination of the symbols `before' or `after'. It also be nil. When a colon is inserted, the language element that it defines is looked up in this list, and if found, the NL-LIST is used to determine where newlines are inserted. If the language element for the colon is not found in this list, the default behavior is to not insert any newlines.") (defvar c-backslash-column 48 "\ *Column to insert backslashes when macroizing a region.") (defvar c-special-indent-hook nil "\ *Hook for user defined special indentation adjustments. This hook gets called after a line is indented by the mode.") (defvar c-delete-function 'backward-delete-char-untabify "\ *Function called by `c-electric-delete' when deleting a single char.") (defvar c-electric-pound-behavior nil "\ *List of behaviors for electric pound insertion. Only currently supported behavior is `alignleft'.") (defvar c-style-alist '(("GNU" (c-basic-offset . 2) (c-comment-only-line-offset . 0) (c-offsets-alist (statement-block-intro . +) (knr-argdecl-intro . 5) (substatement-open . +) (label . -) (statement-cont . +))) ("K&R" (c-basic-offset . 5) (c-comment-only-line-offset . 0) (c-offsets-alist (statement-block-intro . +) (knr-argdecl-intro . 0) (substatement-open . 0) (label . -) (statement-cont . +))) ("BSD" (c-basic-offset . 4) (c-comment-only-line-offset . 0) (c-offsets-alist (statement-block-intro . +) (knr-argdecl-intro . +) (substatement-open . 0) (label . -) (statement-cont . +))) ("Stroustrup" (c-basic-offset . 4) (c-comment-only-line-offset . 0) (c-offsets-alist (statement-block-intro . +) (substatement-open . 0) (label . -) (statement-cont . +))) ("Whitesmith" (c-basic-offset . 4) (c-comment-only-line-offset . 0) (c-offsets-alist (statement-block-intro . +) (knr-argdecl-intro . +) (substatement-open . 0) (label . -) (statement-cont . +))) ("Ellemtel" (c-basic-offset . 3) (c-comment-only-line-offset . 0) (c-hanging-braces-alist (substatement-open before)) (c-offsets-alist (topmost-intro . 0) (topmost-intro-cont . 0) (substatement . 3) (substatement-open . 0) (case-label . +) (access-label . -3) (inclass . 6) (inline-open . 0)))) "\ Styles of Indentation. Elements of this alist are of the form: (STYLE-STRING (VARIABLE . VALUE) [(VARIABLE . VALUE) ...]) where STYLE-STRING is a short descriptive string used to select a style, VARIABLE is any cc-mode variable, and VALUE is the intended value for that variable when using the selected style. There is one special case when VARIABLE is `c-offsets-alist'. In this case, the VALUE is a list containing elements of the form: (SYNTACTIC-SYMBOL . VALUE) as described in `c-offsets-alist'. These are passed directly to `c-set-offset' so there is no need to set every syntactic symbol in your style, only those that are different from the default.") (byte-code "\n\" \"B\nB*" [assoc "Default" c-style-alist (c-inhibit-startup-warnings-p c-strict-semantics-p c-echo-semantic-information-p c-basic-offset c-offsets-alist c-tab-always-indent c-comment-only-line-offset c-block-comments-indent-p c-cleanup-list c-hanging-braces-alist c-hanging-colons-alist c-backslash-column c-electric-pound-behavior) varlist mapcar #[(var) "JB" [var] 2] default] 5) (defvar c-mode-hook nil "\ *Hook called by `c-mode'.") (defvar c++-mode-hook nil "\ *Hook called by `c++-mode'.") (defvar c-mode-common-hook nil "\ *Hook called by both `c-mode' and `c++-mode' during common init path.") (defvar c-mode-menu '(["Comment Out Region" comment-region (mark)] ["Macro Expand Region" c-macro-expand (mark)] ["Backslashify" c-backslash-region (mark)] ["Indent Expression" c-indent-exp (memq (following-char) '(40 91 123))] ["Indent Line" c-indent-command t] ["Fill Comment Paragraph" c-fill-paragraph t] ["Up Conditional" c-up-conditional t] ["Backward Conditional" c-backward-conditional t] ["Forward Conditional" c-forward-conditional t] ["Backward Statement" c-beginning-of-statement t] ["Forward Statement" c-end-of-statement t]) "\ Lucid Emacs menu for C/C++ modes.") (defconst c-emacs-features (byte-code "! !\nÉ\n\"\n̔̕O!\n͔͕O!!UUU\n\"֪\"= #H\"\"U)= =W= =W'\n\"!= ='\n\"!= ='!! E," [boundp emacs-major-version emacs-minor-version nil comments flavor minor major string-match "\\([0-9]+\\).\\([0-9]+\\)" emacs-version string-to-int 1 2 error "Cannot figure out the major and minor version numbers." 18 v18 4 19 v19 "Lucid" Lucid FSF "Cannot recognize major version number: %s" copy-syntax-table table modify-syntax-entry 97 ". 12345678" logand lsh -16 255 8-bit 1-bit no-dual-comments 6 21 c-inhibit-startup-warnings-p "*cc-mode warnings*" print format "The version of Emacs that you are running, %s,\nhas known bugs in its syntax.c parsing routines which will affect the\nperformance of cc-mode. You should strongly consider upgrading to the\nlatest available version. cc-mode may continue to work, after a\nfashion, but strange indentation errors could be encountered." "The version of Emacs 18 you are running, %s,\nhas known deficiencies in its ability to handle dual C++ comments,\ni.e. C++ line style comments and C block style comments. This will\nnot be much of a problem for you if you are only editing C code, but\nif you are doing much C++ editing, you should strongly consider\nupgrading to one of the latest Emacs 19's. In Emacs 18, you may also\nexperience performance degradations. Emacs 19 has some new built-in\nroutines which will speed things up for you.\n\nBecause of these inherent problems, cc-mode is no longer being\nactively maintained for Emacs 18, although patch contributions will be\nfolded into the main release. " "You are running a syntax patched Emacs 18 variant. While this should\nwork for you, you may want to consider upgrading to one of the latest\nEmacs 19's (FSF or Lucid). The syntax patches are no longer supported\neither for syntax.c or cc-mode."] 6) "\ A list of features extant in the Emacs you are using. There are many flavors of Emacs out there, each with different features supporting those needed by cc-mode. Here's the current supported list, along with the values for this variable: Vanilla Emacs 18/Epoch 4: (v18 no-dual-comments) Emacs 18/Epoch 4 (patch2): (v18 8-bit) Lucid Emacs 19: (v19 Lucid 8-bit) FSF Emacs 19: (v19 FSF 1-bit).") (defvar c++-mode-abbrev-table nil "\ Abbrev table in use in c++-mode buffers.") (define-abbrev-table 'c++-mode-abbrev-table nil) (defvar c-mode-abbrev-table nil "\ Abbrev table in use in c-mode buffers.") (define-abbrev-table 'c-mode-abbrev-table nil) (defvar c-mode-map nil "\ Keymap used in c-mode buffers.") (byte-code "X #############################<>= #!B#@A#BC#DE#FG#HI#JK#LM#NO#PQ#RS#TU#V<>WX!YZ#" [c-mode-map make-sparse-keymap define-key "{" c-electric-brace "}" ";" c-electric-semi&comma "#" c-electric-pound ":" c-electric-colon "" c-mark-function "" c-indent-exp "a" c-beginning-of-statement "e" c-end-of-statement "q" c-fill-paragraph "" c-forward-conditional "" c-backward-conditional "" c-up-conditional " " c-indent-command "" c-electric-delete "," "/" c-electric-slash "*" c-electric-star "" c-indent-defun "" c-backslash-region "" c-toggle-auto-state "" c-submit-bug-report "" comment-region "" c-toggle-hungry-state "" c-macro-expand "" c-set-offset "" c-show-semantic-information "" c-toggle-auto-hungry-state "" c-version FSF c-emacs-features [menu-bar] [menu-bar c] "C/C++" [menu-bar c comment-region] ("Comment Out Region" . comment-region) [menu-bar c c-macro-expand] ("Macro Expand Region" . c-macro-expand) [menu-bar c c-backslash-region] ("Backslashify" . c-backslash-region) [menu-bar c indent-exp] ("Indent Expression" . c-indent-exp) [menu-bar c indent-line] ("Indent Line" . c-indent-command) [menu-bar c fill] ("Fill Comment Paragraph" . c-fill-paragraph) [menu-bar c up] ("Up Conditional" . c-up-conditional) [menu-bar c backward] ("Backward Conditional" . c-backward-conditional) [menu-bar c forward] ("Forward Conditional" . c-forward-conditional) [menu-bar c backward-stmt] ("Backward Statement" . c-beginning-of-statement) [menu-bar c forward-stmt] ("Forward Statement" . c-end-of-statement) Lucid boundp mode-popup-menu button3 c-popup-menu] 6) (defvar c++-mode-map nil "\ Keymap used in c++-mode buffers.") (byte-code "\n>\n> B  \" #M" [c++-mode-map v19 c-emacs-features FSF keymap c-mode-map make-sparse-keymap set-keymap-parent define-key ":" c-scope-operator c-populate-syntax-table #[(table) " # # # # # # # # # #" [modify-syntax-entry 92 "\\" table 43 "." 45 61 37 60 62 38 124 39 "\""] 4]] 4) (defvar c-mode-syntax-table nil "\ Syntax table used in c-mode buffers.") (byte-code " !##" [c-mode-syntax-table make-syntax-table c-populate-syntax-table modify-syntax-entry 47 ". 14" 42 ". 23"] 4) (defvar c++-mode-syntax-table nil "\ Syntax table used in c++-mode buffers.") (byte-code " ! >### >###" [c++-mode-syntax-table make-syntax-table c-populate-syntax-table 8-bit c-emacs-features modify-syntax-entry 47 ". 1456" 42 ". 23" 10 "> b" 1-bit ". 124b"] 4) (defvar c-hungry-delete-key nil "\ Internal state of hungry delete key feature.") (defvar c-auto-newline nil "\ Internal state of auto newline feature.") (defvar c-auto-hungry-string nil "\ Internal auto-newline/hungry-delete designation string for mode line.") (defvar c-semantics nil "\ Variable containing semantics list during indentation.") (defvar c-comment-start-regexp nil "\ Buffer local variable describing how comment are introduced.") (defvar c-conditional-key nil "\ Buffer-local language-specific conditional keyword regexp.") (byte-code "!!!!!" [make-variable-buffer-local c-auto-newline c-hungry-delete-key c-auto-hungry-string c-comment-start-regexp c-conditional-key] 2) (autoload 'c-macro-expand "cmacexp" "\ Display the result of expanding all C macros occurring in the region. The expansion is entirely correct because it uses the C preprocessor." t) (defconst c-symbol-key "\\(\\w\\|\\s_\\)+" "\ Regexp describing a C/C++ symbol. We cannot use just `word' syntax class since `_' cannot be in word class. Putting underscore in word class breaks forward word movement behavior that users are familiar with.") (defconst c-class-key (concat "\\(\\(extern\\|typedef\\)\\s +\\)?" "\\(template\\s *<[^>]*>\\s *\\)?" "\\([^\\s +\\)?" c-class-key "[ ]+" c-symbol-key "\\([ ]*:[ ]*\\)?\\s *[^;]") "\ Regexp describing a class inheritance declaration.") (defconst c-protection-key "\\<\\(public\\|protected\\|private\\)\\>" "\ Regexp describing protection keywords.") (defconst c-baseclass-key (concat ":?[ ]*\\(virtual[ ]+\\)?\\(" c-protection-key "[ ]+\\)" c-symbol-key) "\ Regexp describing base classes in a derived class definition.") (defconst c-switch-label-key "\\(\\(case[ ]+\\S .*\\)\\|default[ ]*\\):" "\ Regexp describing a switch's case or default label") (defconst c-access-key (concat c-protection-key ":") "\ Regexp describing access specification keywords.") (defconst c-label-key (concat c-symbol-key ":\\([^:]\\|$\\)") "\ Regexp describing any label.") (defconst c-C-conditional-key "\\b\\(for\\|if\\|do\\|else\\|while\\|switch\\)\\b[^_]" "\ Regexp describing a conditional control.") (defconst c-C++-conditional-key "\\b\\(for\\|if\\|do\\|else\\|while\\|switch\\|try\\|catch\\)\\b[^_]" "\ Regexp describing a conditional control for C++.") (fset 'c++-mode #[nil " \n!\n!  !" [kill-all-local-variables set-syntax-table c++-mode-syntax-table c++-mode major-mode "C++" mode-name c++-mode-abbrev-table local-abbrev-table use-local-map c++-mode-map c-common-init "// " comment-start "" comment-end c-C++-conditional-key c-conditional-key "//\\|/\\*" c-comment-start-regexp run-hooks c++-mode-hook] 2 "\ Major mode for editing C++ code. cc-mode Revision: 3.349 To submit a problem report, enter `\\[c-submit-bug-report]' from a c++-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the problem, including a reproducable test case and send the message. Note that the details of configuring c++-mode have been moved to the accompanying texinfo manual. The hook variable `c++-mode-hook' is run with no args, if that variable is bound and has a non-nil value. Also the common hook c-mode-common-hook is run first, both by this defun, and `c-mode'. Key bindings: \\{c++-mode-map}" nil]) (fset 'c-mode #[nil " \n!\n!  !" [kill-all-local-variables set-syntax-table c-mode-syntax-table c-mode major-mode "C" mode-name c-mode-abbrev-table local-abbrev-table use-local-map c-mode-map c-common-init "/* " comment-start " */" comment-end c-C-conditional-key c-conditional-key "/\\*" c-comment-start-regexp run-hooks c-mode-hook] 2 "\ Major mode for editing K&R and ANSI C code. cc-mode Revision: 3.349 To submit a problem report, enter `\\[c-submit-bug-report]' from a c-mode buffer. This automatically sets up a mail buffer with version information already added. You just need to add a description of the problem, including a reproducable test case and send the message. Note that the details of configuring c-mode will soon be moved to the accompanying texinfo manual. Until then, please read the README file that came with the cc-mode distribution. The hook variable `c-mode-hook' is run with no args, if that value is bound and has a non-nil value. Also the common hook c-mode-common-hook is run first, both by this defun and `c++-mode'. Key bindings: \\{c-mode-map}" nil]) (byte-code "MMMMMMMMM" [c-common-init #[nil "!!!!!!!!!!! P\n !!!>\"!! #>!P B!$$B$!" [make-local-variable paragraph-start paragraph-separate paragraph-ignore-fill-prefix require-final-newline parse-sexp-ignore-comments indent-line-function indent-region-function comment-start comment-end comment-column comment-start-skip "^$\\|" page-delimiter t c-indent-line c-indent-region 32 "/\\*+ *\\|// *" boundp comment-indent-function c-comment-indent comment-indent-hook Lucid c-emacs-features current-menubar assoc mode-name set-buffer-menubar copy-sequence add-menu nil c-mode-menu mode-popup-menu " Mode Commands" c-auto-hungry-string minor-mode-alist (c-auto-hungry-string c-auto-hungry-string) run-hooks c-mode-common-hook] 5] c-point (macro . #[(position) " = AA \" A@ =Ǫ =ɪ =˪ =ͪ =Ϫ =Ѫ =Ӫ =ժ \"$" [quote position error "bad buffer position requested: %s" append (let ((here (point)))) bol ((beginning-of-line)) eol ((end-of-line)) bod ((beginning-of-defun) (and (boundp 'defun-prompt-regexp) defun-prompt-regexp (looking-at defun-prompt-regexp) (goto-char (match-end 0)))) boi ((back-to-indentation)) bonl ((forward-line 1)) bopl ((forward-line -1)) iopl ((forward-line -1) (back-to-indentation)) ionl ((forward-line 1) (back-to-indentation)) "unknown buffer position requested: %s" ((prog1 (point) (goto-char here))) nil] 5]) c-auto-newline (macro . #[nil "" [(and c-auto-newline (not (c-in-literal)) (not (newline)))] 1]) c-safe (macro . #[(&rest body) " \"F" [condition-case nil append (progn) body (error nil)] 5]) c-insert-special-chars #[(arg) "\n!!" [self-insert-command prefix-numeric-value arg] 3] c-comment-indent #[nil "\nQ!ć`y\nQ!!iT!!ͪyoyw\n!`)biWibxUnĪiT]+" [looking-at "^\\(" c-comment-start-regexp "\\)" 0 nil placeholder opoint "[ ]*}[ ]*\\($\\|" search-forward "}" "^#[ ]*endif[ ]*" "^#[ ]*else[ ]*" 7 -1 " " comment-column] 4] c-keep-region-active #[nil "!‰" [boundp zmacs-region-stays t] 2] c-update-modeline #[nil " ªê > !" [c-auto-newline c-hungry-delete-key "/ah" "/a" "/h" c-auto-hungry-string v19 c-emacs-features force-mode-line-update set-buffer-modified-p buffer-modified-p] 2] c-calculate-state #[(arg prevstate) "!U ?V" [arg prefix-numeric-value 0 prevstate] 2]] 2) (fset 'c-toggle-auto-state #[(arg) " \n\" " [c-calculate-state arg c-auto-newline c-update-modeline c-keep-region-active] 3 "\ Toggle auto-newline feature. Optional numeric ARG, if supplied turns on auto-newline when positive, turns it off when negative, and just toggles it when zero. When the auto-newline feature is enabled (as evidenced by the `/a' or `/ah' on the modeline after the mode name) newlines are automatically inserted after special characters such as brace, comma, semi-colon, and colon." "P"]) (fset 'c-toggle-hungry-state #[(arg) " \n\" " [c-calculate-state arg c-hungry-delete-key c-update-modeline c-keep-region-active] 3 "\ Toggle hungry-delete-key feature. Optional numeric ARG, if supplied turns on hungry-delete when positive, turns it off when negative, and just toggles it when zero. When the hungry-delete-key feature is enabled (as evidenced by the `/h' or `/ah' on the modeline after the mode name) the delete key gobbles all preceding whitespace in one fell swoop." "P"]) (fset 'c-toggle-auto-hungry-state #[(arg) " \n\" \" " [c-calculate-state arg c-auto-newline c-hungry-delete-key c-update-modeline c-keep-region-active] 3 "\ Toggle auto-newline and hungry-delete-key features. Optional numeric ARG, if supplied turns on auto-newline and hungry-delete when positive, turns them off when negative, and just toggles them when zero. See `c-toggle-auto-state' and `c-toggle-hungry-state' for details." "P"]) (fset 'c-electric-delete #[(arg) " !!`x` U` | !)" [c-hungry-delete-key arg c-in-literal c-delete-function prefix-numeric-value here " \n" nil 1] 3 "\ Deletes preceding character or whitespace. If `c-hungry-delete-key' is non-nil, as evidenced by the \"/h\" or \"/ah\" string on the mode line, then all preceding whitespace is consumed. If however an ARG is supplied, or `c-hungry-delete-key' is nil, or point is inside a literal then the function in the variable `c-delete-function' is called." "P"]) (fset 'c-electric-pound #[(arg) " > !!d`Zny  \"?dZb*" [c-in-literal arg alignleft c-electric-pound-behavior self-insert-command prefix-numeric-value bolp pos 0 delete-horizontal-space insert-char last-command-char 1] 3 "\ Electric pound (`#') insertion. Inserts a `#' character specially depending on the variable `c-electric-pound-behavior'. If a numeric ARG is supplied, or if point is inside a literal, nothing special happens." "P"]) (fset 'c-electric-brace #[(arg) "` ! !ŕb`b)!! \n  \n !!xn) !!             @&>d`Z`)y d)Zb`U  *`Z`S|   !`d`Z̉-.)0>1U   uxhU `S|0>1U#Ŕ.ŕ-U .-|cd)Zb,> 1U !!  !). " [here beginning-of-defun boundp defun-prompt-regexp looking-at 0 bod c-in-literal literal blink-paren-function blink-paren-hook old-blink-paren nil semantics newlines delete-temp-newline c-echo-semantic-information-p arg "[ ]*$" c-insert-special-chars " " newline t self-insert-command prefix-numeric-value c-guess-basic-semantics c-auto-newline defun-open defun-close class-open class-close inline-open inline-close brace-list-open brace-list-close block-open block-close substatement-open c-hanging-braces-alist (ignore before after) before pos -1 c-indent-line 2 mend mbeg empty-defun-braces c-cleanup-list last-command-char 125 " \n" 123 brace-else-brace re-search-backward "}[ \n]*else[ \n]*{" "} else {" after c-backward-syntactic-ws run-hooks] 5 "\ Insert a brace. If the auto-newline feature is turned on, as evidenced by the \"/a\" or \"/ah\" string on the mode line, newlines are inserted before and after braces based on the value of `c-hanging-braces-alist'. Also, the line is re-indented unless a numeric ARG is supplied, there are non-whitespace characters present on the line after the brace, or the brace is inserted inside a literal." "P"]) (fset 'c-electric-slash #[(arg) "=\n?hU U ?\n!! *" [major-mode c++-mode arg 47 last-command-char c-in-literal nil c-echo-semantic-information-p indentp self-insert-command prefix-numeric-value c-indent-line] 3 "\ Insert a slash character. If slash is second of a double-slash C++ style comment introducing construct, and we are on a comment-only-line, indent line as comment. If numeric ARG is supplied or point is inside a literal, indentation is inhibited." "P"]) (fset 'c-electric-star #[(arg) "? >xn)hU!! *" [arg c-in-literal (c) "* " nil 47 c-echo-semantic-information-p indentp self-insert-command prefix-numeric-value c-indent-line] 3 "\ Insert a star character. If the star is the second character of a C style comment introducing construct, and we are on a comment-only-line, indent line as comment. If numeric ARG is supplied or point is inside a literal, indentation is inhibited." "P"]) (fset 'c-electric-semi&comma #[(arg) "` ! !ŕb`b)!`\n ! ! !!??d`ZU>U>uxhU `|dZb) Uݏ ," [here beginning-of-defun boundp defun-prompt-regexp looking-at 0 bod c-in-literal literal nil c-echo-semantic-information-p arg "[ ]*$" c-insert-special-chars self-insert-command prefix-numeric-value c-auto-newline pos last-command-char 44 list-close-comma c-cleanup-list 59 defun-close-semi -1 " \n" 125 c-indent-line (byte-code "!gU)?" [up-list -1 40] 2) ((error t)) newline] 3 "\ Insert a comma or semicolon. When the auto-newline feature is turned on, as evidenced by the \"/a\" or \"/ah\" string on the mode line, a newline is inserted after semicolons, but not commas. When semicolon is inserted, the line is re-indented unless a numeric arg is supplied, point is inside a literal, or there are non-whitespace characters on the line following the semicolon." "P"]) (fset 'c-electric-colon #[(arg) "` ! !ŕb`b)!\n   ! ! !!d`Z`>hUuxhU `ZfU`S|dZb* \n\n\n\n@)c \n\n\n@*! \n! >d`Zu dZb) > -" [here beginning-of-defun boundp defun-prompt-regexp looking-at 0 bod c-in-literal literal nil semantics newlines c-echo-semantic-information-p arg "[ ]*$" c-insert-special-chars self-insert-command prefix-numeric-value pos c-auto-newline scope-operator c-cleanup-list 58 -1 " \n" 2 c-guess-basic-semantics case-label label access-label langelem c-hanging-colons-alist "\n" member-init-intro inher-intro delete-char c-indent-line before newline after] 4 "\ Insert a colon. If the auto-newline feature is turned on, as evidenced by the \"/a\" or \"/ah\" string on the mode line, newlines are inserted before and after colons based on the value of `c-hanging-colons-alist'. Also, the line is re-indented unless a numeric ARG is supplied, there are non-whitespace characters present on the line after the colon, or the colon is inserted inside a literal. This function cleans up double colon scope operators based on the value of `c-cleanup-list'." "P"]) (fset 'c-read-offset #[(langelem) "\n \"Ɖ \n   \"͘ΪϘЪ\"!Տ! \n ƉA-" [format "%s" langelem c-offsets-alist "Offset must be +, -, an integer, or function name: " "Offset: " nil input offset prompt errmsg oldoff read-string "+" + "-" - string-match "^-?[0-9]+$" string-to-int (byte-code " !K" [intern input] 2) ((error)) intern ding] 6]) (fset 'c-set-offset #[(symbol offset &optional add-p) "==ŏ\" \n\n B B \") " [offset + - nil (symbol-function offset) ((error)) error "Offset is not +, -, an integer, or a function name: %s" symbol c-offsets-alist entry add-p "%s is not a valid syntactic symbol." c-keep-region-active] 4 "\ Change the value of a syntactic element symbol in `c-offsets-alist'. SYMBOL is the syntactic element symbol to change and OFFSET is the new offset for that syntactic element. Optional ADD says to add SYMBOL to `c-offsets-alist' if it doesn't already appear there." (byte-code " ĪQ \" ?$!  !   E*" [intern completing-read "Syntactic symbol to change" current-prefix-arg " or add" "" ": " mapcar #[(langelem) "\n@\"B" [format "%s" langelem nil] 3] c-offsets-alist nil langelem c-read-offset offset] 6)]) (fset 'c-set-style #[(style &optional local) " \n\"A \" \") " [assoc style c-style-alist vars error "Invalid C indentation style `%s'" mapcar #[(varentry) "@A \n!\n=\n L! \"*" [varentry val var local make-local-variable c-offsets-alist copy-alist c-offsets-alist-default mapcar #[(langentry) "@A\n \"*" [langentry offset langelem c-set-offset] 3]] 3] c-keep-region-active] 4 "\ Set cc-mode variables to use one of several different indentation styles. STYLE is a string representing the desired style and optional LOCAL is a flag which, if non-nil, means to make the style variables being changed buffer local, instead of the default, which is to set the global variables. Interactively, the flag comes from the prefix argument. The styles are chosen from the `c-style-alist' variable." (byte-code "\n$ D" [completing-read "Use which C indentation style? " c-style-alist nil t current-prefix-arg] 5)]) (fset 'c-fill-paragraph #[(&optional arg) "yw !`)=y!)\nP P \n yo!ys!y!”•{ `y`b)y !yu`)}!-_ =y `)#`)[y! !i\"yiy`y``b)w`{!``|))\nP P \n b!i\"`\"\"\"* \\b#y`)}!ebV``\\|dby#y! .!*" [nil comment-start-place 0 " \n" looking-at comment-start-skip first-line major-mode c++-mode ".*//" paragraph-start "\\|^[ ]*/\\*[ ]*$\\|^[ ]*\\*/[ ]*$\\|^[ /*]*$" paragraph-separate fill-prefix "[ ]*//" -1 1 re-search-forward "[ ]*//[ ]*" here fill-paragraph arg c-in-literal c t "[ ]*/\\*.*\\*/" make-string 32 line-width " *" move-to-column chars-to-delete search-backward "/*" column insert-char 2 search-forward "*/" move "[ ]*\\*/" delete-indentation] 5 "\ Like \\[fill-paragraph] but handles C and C++ style comments. If any of the current line is a comment or within a comment, fill the comment or the paragraph of it that point is in, preserving the comment indentation or line-starting decorations." "P"]) (fset 'c-forward-into-nomenclature #[(&optional arg) "\nVd\n$\nWe#u\nTl) " [nil case-fold-search arg 0 re-search-forward "\\W*\\([A-Z]*[a-z0-9]*\\)" t re-search-backward "\\(\\(\\W\\|[a-z0-9]\\)[A-Z]+\\|\\W\\w+\\)" 1 c-keep-region-active] 6 "\ Move forward to end of a nomenclature section or word. With arg, to it arg times." "p"]) (fset 'c-backward-into-nomenclature #[(&optional arg) " [! " [c-forward-into-nomenclature arg c-keep-region-active] 2 "\ Move backward to beginning of a nomenclature section or word. With optional ARG, move that many times. If ARG is negative, move forward." "p"]) (fset 'c-scope-operator #[nil "c" ["::"] 1 "\ Insert a double colon scope operator at point. No indentation or other \"electric\" behavior is performed." nil]) (fset 'c-beginning-of-statement #[(&optional count lim) "`\n` !!ȕb` b)\n\nb` ɉ$\n)t\n8\n8P!x`Zb!)[!V SsW Ts`\n]b, " [count 1 lim here beginning-of-defun boundp defun-prompt-regexp looking-at 0 nil state parse-partial-sexp 3 4 "[ ]*" comment-start-skip " " 2 "\\*/" forward-sentence c-beginning-of-statement-1 c-end-of-statement-1 c-keep-region-active] 6 "\ Go to the beginning of the innermost C statement. With prefix arg, go back N - 1 statements. If already at the beginning of a statement then go to the beginning of the preceding one. If within a string or comment, or next to a comment (only whitespace between), move by sentences instead of statements. When called from a program, this function takes 2 optional args: the prefix arg, and a buffer position limit which is the farthest back to search." "p"]) (fset 'c-end-of-statement #[(&optional count lim) " [ \" " [c-beginning-of-statement count 1 lim c-keep-region-active] 3 "\ Go to the end of the innermost C statement. With prefix arg, go forward N - 1 statements. Move forward to end of the next statement if already at end. If within a string or comment, move by sentences instead of statements. When called from a program, this function takes 2 optional args: the prefix arg, and a buffer position limit which is the farthest back to search." "p"]) (byte-code "MM" [c-beginning-of-statement-1 #[nil "` ouǏ !\nb xhU`)\nb J =y= : `1!ӏ!)!``\nW\nwg> cu^))`\nb," [t nil last-begin literal-cache donep firstp (byte-code "!‡" [backward-sexp 1 t] 2) ((error)) backward-up-list 1 c-backward-syntactic-ws "-+!*&:.~" 40 c-in-literal pound 0 looking-at c-conditional-key (forward-sexp -1) ((error)) "\\[ ]+\\" forward-sexp -1 crossedp "^;{}" (59 123 125)] 5] c-end-of-statement-1 #[nil "" [nil (byte-code "m`!`b #+i!u" [beg forward-sexp 1 end re-search-forward "[;{}]" t re-search-backward "[;}]"] 4) ((error (byte-code "`!`b #*" [beg backward-up-list -1 end search-forward ";" move] 4)))] 3]] 2) (fset 'c-up-conditional #[(count) " [\" " [c-forward-conditional count t c-keep-region-active] 3 "\ Move back to the containing preprocessor conditional, leaving mark behind. A prefix argument acts as a repeat count. With a negative argument, move forward to the end of the containing preprocessor conditional. When going backwards, `#elif' is treated like `#else' followed by `#if'. When going forwards, `#elif' is ignored." "p"]) (fset 'c-backward-conditional #[(count &optional up-flag) " [\n\" " [c-forward-conditional count up-flag c-keep-region-active] 3 "\ Move back across a preprocessor conditional, leaving mark behind. A prefix argument acts as a repeat count. With a negative argument, move forward across a preprocessor conditional." "p"]) (fset 'c-forward-conditional #[(count &optional up-flag) "Vê\nƪ\nU    #y!l y! \\ !\n U`  Z W W\n֪!\ny W` )) ! \nb* \\) \nb, " [count 0 forward -1 1 increment re-search-forward re-search-backward search-function nil new up-flag found depth "#[ ]*\\(if\\|elif\\|endif\\)" t looking-at "^[ ]*#[ ]*\\(if\\|elif\\|endif\\)" prev "[ ]*#[ ]*endif" "[ ]*#[ ]*elif" error "No following conditional at this level" "No previous conditional at this level" "No containing preprocessor conditional" push-mark c-keep-region-active] 5 "\ Move forward across a preprocessor conditional, leaving mark behind. A prefix argument acts as a repeat count. With a negative argument, move backward across a preprocessor conditional." "p"]) (fset 'c-indent-command #[(&optional whole-exp) "` ! !ŕb`b) ɉ\n   =y` !`\n by` )\n V \n $+ xn)  = ! )" [here beginning-of-defun boundp defun-prompt-regexp looking-at 0 bod whole-exp c-indent-line nil end beg shift-amt c-tab-always-indent t forward-sexp 1 indent-code-rigidly "#" " " insert-tab c-in-literal] 5 "\ Indent current line as C++ code, or in some cases insert a tab character. If `c-tab-always-indent' is t, always just indent the current line. If nil, indent the current line only if point is at the left margin or in the line's indentation; otherwise insert a tab. If other than nil or t, then tab is inserted only within literals (comments and strings) and inside preprocessor directives, but line is always reindented. A numeric argument, regardless of its value, means indent rigidly all the lines of the expression starting after point so that this line becomes properly indented. The relative indentation among the lines of the expression are preserved." "P"]) (fset 'c-indent-exp #[(&optional shutup-p) "`Îwg>````\nb)\"A@A@bg>`) \n̏  ! !! by` W! yn-" [nil end here ((byte-code "\n! b" [end nil shutup-p message "indenting expression... done." here] 3)) " \n" (40 91 123) parse-partial-sexp state (40 91 123) start c-echo-semantic-information-p (byte-code "!‡" [forward-sexp 1 t] 2) ((error)) point-marker shutup-p error "Cannot find start of balanced expression to indent." "Cannot find end of balanced expression to indent." message "indenting expression... (this may take a while)" 0 looking-at "[ ]*$" c-indent-line 1] 6 "\ Indent each line in balanced expression following point. Optional SHUTUP-P if non-nil, inhibits message printing and error checking." "P"]) (fset 'c-indent-defun #[nil "  !!ȕbɎˏ+" [point-marker nil c-echo-semantic-information-p here beginning-of-defun boundp defun-prompt-regexp looking-at 0 ((byte-code "b" [here nil] 3)) (c-indent-exp) ((buffer-read-only (error)) (error (error "Cannot find closed top-level defun containing point.")))] 3 "\ Re-indents the current top-level function def, struct or class declaration." nil]) (fset 'c-indent-region #[(start end) "!\nbwyǎ \n !nm`Wĉ wy y!)y`y`b)y`W֏ pb !` )yw!`y`b) )ݏ!ĉy+ -!" [message "indenting region... (this may take a while)" start " \n" nil 0 endmark ((byte-code "" [endmark nil] 3)) t c-echo-semantic-information-p c-tab-always-indent copy-marker end sexpbeg sexpend nextline c-indent-line looking-at "[ ]*#" 1 here (byte-code "!`" [forward-sexp 1 sexpend] 2) ((error (byte-code "\nb" [nil sexpend nextline] 1))) c-forward-syntactic-ws point-marker backward-sexp " " c-comment-start-regexp (byte-code " V\nX b!bć" [sexpend nextline endmark sexpbeg c-indent-exp shutup] 2) ((error (byte-code "b " [sexpbeg c-indent-line] 1))) markerp "indenting region... done."] 3]) (fset 'c-mark-function #[nil "`` ! !ŕb`b) `)!`) \n! #b `\nYb," [here beginning-of-defun boundp defun-prompt-regexp looking-at 0 end-of-defun 2 bod2 eod bod push-mark nil t] 5 "\ Put mark at end of a C/C++ defun, point at beginning." nil]) (byte-code "MMMMMMMMMMMMMMMMMM" [c-forward-syntactic-ws #[(&optional lim) "dd`} `U?`\n!gUo` ` b)`Ua\\," [lim here hugenum forward-comment 35 back-to-indentation nil] 3] c-backward-syntactic-ws #[(&optional lim) "` ! !ƕb` b)d[`W`} `U?`!!=lyg," [lim here beginning-of-defun boundp defun-prompt-regexp looking-at 0 hugenum forward-comment c-in-literal pound] 3] c-in-literal #[(&optional lim) "` ! !ƕb` b)``\"8ʪ88ͪΪ by!Ъ," [lim here beginning-of-defun boundp defun-prompt-regexp looking-at 0 parse-partial-sexp state 3 string 4 7 c++ c "[ ]*#" pound nil] 3] c-parse-state #[nil " W gU Tojljh)`)`) \n   ύ{ ." [nil at-bob 0 cnt 2 beginning-of-defun 123 t pos here last-bod last-pos state sexp-end backup-bod (byte-code "\n\n W\nƏ\n Xȏ  X\nSfU\nS B @: A B <\nS B4\n1 -͏'b gU`o e`\"*" [nil state pos here last-pos (scan-lists pos 1 -1) ((error)) (byte-code " S\"" [scan-sexps pos 1] 3) ((error)) sexp-end 123 at-bob (byte-code " ‰#" [scan-lists last-pos 1] 4) ((error)) donep last-bod beginning-of-defun t throw backup-bod] 4)] 3] c-beginning-of-inheritance-list #[(&optional lim) "` ! !ƕb` b) `!`Vh>y`w !!`b`` b)w*" [lim here beginning-of-defun boundp defun-prompt-regexp looking-at 0 back-to-indentation placeholder c-backward-syntactic-ws (44 58) " " nil c-class-key "^:"] 3] c-beginning-of-macro #[(&optional lim) " " [back-to-indentation] 1] c-just-after-func-arglist-p #[(&optional containing) " `bhUv! \nbhUu !\nbhU*" [c-backward-syntactic-ws containing checkpoint 116 -1 looking-at "\\" 58 "\\s *:\\([^:]+\\|$\\)" 41] 3] c-backward-to-start-of-do #[(&optional lim) "\n` !!ȕb` b) \n\nU?̏r+" [1 nil lim here beginning-of-defun boundp defun-prompt-regexp looking-at 0 case-fold-search do-level (byte-code "! !>!T!S` W b" [backward-sexp 1 c-in-literal lim (c c++) looking-at "while\\b[^_]" do-level "do\\b[^_]" 0] 2) ((error (byte-code "b" [lim 0 do-level] 1)))] 4] c-backward-to-start-of-if #[(&optional lim) "\n` !!ȕb` b)!\n  ΍," [1 nil lim here beginning-of-defun boundp defun-prompt-regexp looking-at 0 "if\\b[^_]" at-if case-fold-search if-level orphan-if (byte-code "oU ŏ!Tf!` ˏ!S b)J` WD b<·" [if-level 0 c-backward-syntactic-ws nil (backward-sexp 1) ((error (byte-code "\"!Ç" [at-if throw orphan-if nil error "Orphaned `else' clause encountered."] 3))) looking-at "else\\b[^_]" "if\\b[^_]" here (forward-sexp -1) ((error)) "\\[ ]+\\" lim t] 3)] 5] c-skip-conditional #[nil "!ê!Ū!" [forward-sexp looking-at "\\[ ]+\\" 3 "\\<\\(do\\|else\\)\\>" 1 2] 3] c-search-uplist-for-classkey #[(brace-state) "??@:8A@A@@\n??\n:\n\" e : A b \n\n ~`\n} \n#)ϔ ϕ !\\ bw` `b)\n\"\n\nw`\nU\nb1 bxhU$\n\nw\n-+" [brace-state nil search-end search-start carcache 2 error "consp search-end: %s" match-end class foundp c-forward-syntactic-ws re-search-forward c-class-key t 0 c-in-literal " \n" vector here back-to-indentation "^;=,)" 60 "^>"] 5] c-inside-bracelist-p #[(containing-sexp) " b o ` W! w` U) b\n hU `lhUΏ`hU`ZfUu!JD) *" [nil bufpos donep containing-sexp c-beginning-of-statement c-forward-syntactic-ws looking-at "\\(typedef[ ]+\\)?enum[ \n]+" "^;" c-backward-syntactic-ws 61 t 123 (forward-char -1) ((error)) 44 2 125 -1 backward-sexp 1] 4] c-add-semantics (macro . #[(symbol &optional relpos) "‰ EEE" [setq semantics cons symbol relpos] 6]) c-enclosing-brace #[(state) "\n \n@\nA :le Vc )" [nil enclosingp state] 3] c-narrow-out-enclosing-class #[(state lim) "\n\n! HTbw`y`b) HX HTb!`y`b)b``b)} )" [nil inclass-p state c-search-uplist-for-classkey 1 " \n" lim here 0 c-forward-syntactic-ws] 3] c-guess-basic-semantics #[nil "y`  \n  \" bwx  @ A:A`U@_ZeXTO)e\n bwg \n!h bw\n!>`y`b)B B t\n>yU!u`y`b)B B t\n=\n!` `b)B B t\n U bw !!!H * B B t\n\n\"o !` !U wgU)?) B B t\nHB B t\n b`y`b)B B t\n U UUu\n!hUu\n!hU!` `b)B B t\n2=` `b)B B t\nHB B t\n` `b)B B t\nHB B t\n7! U\n!` `b)B B t\nU` `b)B B t\nHB B t\n\n!`B B t\nU[ b\n!\n`WhUu`y`b)!hU!y\n!PhU b\n!` `b)B B t\n !gUw`B B t\n@!A` `b)B B t\nB\nxhCU)D`B B t\n\n\"E` `b)B B t\nF!G`y`b)B B HB B t\n HU~uIJ`HU*~HbK` `b)B B )t\n2L=Ȋ\n!hM>y` \n!lhU) ؁N!) bO` `b)B B t\n\n!hU!F!)!\n!`ohP>Q`y`b)B B t\nHB B t\n\n\"R` `b)B B t\nfU!SUbT` `b)B B t\nU UbU` `b)B B t\nbVW؁X!)\"UY`B B t\nE`B B t\nTbwl) Zx`X)b[` `b)B B t\n\"D` `b)B B t\n bw7!) bw U\n!` `b)B B t\nU` `b)B B t\n\n!`B B t\n\\!  HU]^`U_` `b)B B t\n b!`TU)b`` `b)B B  Ut\naB B t\nTb !b`B B  Ut\naB B t\nc>`\"` )V U bw bd!ef ` Y) b Ug` `b)B B t\nh` `b)B B t\n Uފ bw !!!H * B B t\n b؁i!)U B B t\nE B B aB B t\n؁j! bd!k lj m# o` Un` `b)B B t\n\n!E` `b)B B t\nŠ bd!op `)\"E`B B t\n؁q!r!s` `b)B B t\n bw؁t!u!` ؁v!)w B B t\nx!by` `b)B B t\nz!b{` `b)B B t\n HUb`` `b)U ` `b*|b !}|B B ~ !|B B e } !!K!HB B |B B *)t\nbu !xzQ!x!y !f b! ` x!) B B s\nUE` `b)B B s\n> b\n! z!) > bw؁!)E` `b)B B s\n` WY` `b)B B  UaB B 튌~b \"~ !*b` `b)B B b`` `b)U ` `b)B B  UaB B * bw!iWB B  B B 2=؁!B B  . " [0 indent-point nil case-fold-search c-parse-state state literal containing-sexp char-before-ip char-after-ip lim semantics placeholder c-narrow-out-enclosing-class inclass-p " }" " " c-backward-syntactic-ws c-in-literal (string) string here -1 (c c++) looking-at "^[ ]*$" pound c-beginning-of-macro cpp-macro back-to-indentation 123 " {" c-search-uplist-for-classkey decl class-open c-beginning-of-statement c-forward-syntactic-ws "enum[ \n]+" 61 "^;" 59 brace-list-open inline-open defun-open c-just-after-func-arglist-p 58 41 backward-sexp 1 member-init-intro major-mode c++-mode c++-funcdecl-cont inclass knr-argdecl-intro c-baseclass-key inher-intro c-beginning-of-inheritance-list inher-cont 44 (backward-sexp 1) ((error)) member-init-cont " :" c-inher-key inher-cont-1 "^<" 60 arglist-cont statement-cont c-access-key access-label 125 (byte-code "!‡" [backward-sexp 1 t] 2) ((error)) class-close c-mode (59 44) "typedef[ \n]+" knr-argdecl (59 125) topmost-intro topmost-intro-cont 40 arglist-intro arglist-close (byte-code "!‡" [forward-sexp -1 t] 2) ((error)) "\\" statement " (" arglist-cont-nonempty c-inside-bracelist-p (byte-code "u!‡" [1 backward-sexp t] 2) ((error)) brace-list-close brace-list-intro block-open brace-list-entry (59 125 58) c-conditional-key (byte-code " " [c-skip-conditional t] 1) ((error)) substatement-open substatement "\\" "<<\\|>>" c-skip-conditional re-search-forward move stream-op (byte-code " " [c-skip-conditional t] 1) ((error)) "\\" c-backward-to-start-of-if else-clause "while\\b[^_]" c-backward-to-start-of-do "do\\b[^_]" do-while-closure c-switch-label-key case-label c-label-key label relpos inline-close c-enclosing-brace block-close defun-close "\\|" inswitch-p ignore-re t statement-case-intro (58 63) (58 63) "::" defun-block-intro statement-block-intro c-comment-start-regexp comment-column comment-intro "friend[ ]+" friend] 6] c-get-offset #[(langelem) "@A   \" =  = [ ! ! !\n\n`y`b)W\nbi) \\," [langelem symbol relpos c-offsets-alist match offset c-strict-semantics-p error "don't know how to indent a %s" 0 + c-basic-offset - fboundp eval here] 4] c-indent-line #[(&optional semantics) " d`Z\n\"\" Z\n \n#\nU`y`b)` `b)|yj`` `b)W d Z`Vd Zb!\n," [semantics c-guess-basic-semantics c-semantics pos apply + mapcar c-get-offset indent current-indentation shift-amt c-echo-semantic-information-p message "semantics: %s, indent= %d" 0 here back-to-indentation run-hooks c-special-indent-hook] 5]] 2) (fset 'c-show-semantic-information #[nil " \" " [message "semantics: %s" c-guess-basic-semantics c-keep-region-active] 3 "\ Show semantic information for current line." nil]) (byte-code "MMMMMMMM" [c-lineup-arglist #[(langelem) "@>y!``b)wAb`)Abi) y!)yw!u i Zblu``b)!i Z+" [langelem (arglist-intro arglist-cont-nonempty) 0 backward-up-list 1 " " here nil containing-sexp cs-curcol looking-at "[ ]*)" " )" forward-sexp -1 c-forward-syntactic-ws] 3] c-lineup-streamop #[(langelem) "Abi`` b)#Ȕbi\nZ+" [langelem relpos curcol re-search-forward "<<\\|>>" here nil move 0] 5] c-lineup-multi-inher #[(langelem) "`` b)` Abi\nw\nwl! !i Z," [nil here eol cs-curcol langelem "^:" " :" looking-at c-comment-start-regexp c-forward-syntactic-ws] 3] c-lineup-C-comments #[(langelem) "yw!Z Abi ` ` b)# UΪUZ\\biZ+" [0 " " nil looking-at "\\*\\*?" langelem cs-curcol stars back-to-indentation re-search-forward "/\\*[ ]*" here t c-block-comments-indent-p 1 2] 4] c-lineup-comment #[(langelem) " i Y n )" [back-to-indentation comment-column c-comment-indent c-comment-only-line-offset -1000] 2] c-lineup-runin-statements #[(langelem) "AfUAbiuwi\nZ*Ƈ" [langelem 123 curcol 1 " " nil 0] 2] c-lineup-math #[(langelem) "` `b)b``b)wgU`` `b)Z) Abi``b)wgUuwiZZ+" [here back-to-indentation "^=" nil 61 langelem curcol equalp c-basic-offset 1 " " 0] 3] c-backslashify-current-line #[(doit) " u!)?i Yci Xcs!i Wcscn?u!x`` ` b)|" [nil doit -1 looking-at "\\\\" c-backslash-column " \\" " " delete-char " " "\\" " " here] 3]] 2) (fset 'c-backslash-region #[(beg end arg) "bn?\n}ebym) ?!yn) b ?!*" [end do-lastline-p beg 1 c-backslashify-current-line arg] 2 "\ Insert backslashes at end of every line in region. Useful for defining cpp macros. If called with a prefix argument, it trailing backslashes are removed." "r\nP"]) (defconst c-version "3.349" "\ cc-mode version number.") (defconst c-mode-help-address "cc-mode-help@anthem.nlm.nih.gov" "\ Address accepting submission of bug reports.") (fset 'c-version #[nil "\n\" " [message "Using cc-mode version %s" c-version c-keep-region-active] 3 "\ Echo the current version of cc-mode in the minibuffer." nil]) (fset 'c-submit-bug-report #[nil "!!  =˪Ͱۯ$" [y-or-n-p "Do you want to submit a report on cc-mode? " require reporter reporter-submit-bug-report c-mode-help-address "cc-mode " c-version " (" major-mode c++-mode "C++" "C" ")" c-emacs-features c-basic-offset c-offsets-alist c-block-comments-indent-p c-cleanup-list c-comment-only-line-offset c-backslash-column c-delete-function c-electric-pound-behavior c-hanging-braces-alist c-hanging-colons-alist c-tab-always-indent defun-prompt-regexp tab-width #[nil "\"ưc" [c-special-indent-hook "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n" "c-special-indent-hook is set to '" format "%s" ".\nPerhaps this is your problem?\n" "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n\n" "\n"] 5]] 17 "\ Submit via mail a bug report on cc-mode." nil]) (fset 'c-popup-menu #[(e) " P B! " [popup-menu mode-name " Mode Commands" c-mode-menu c-keep-region-active] 3 "\ Pops up the C/C++ menu." "@e"]) (byte-code "MMMMMMMM>BBBBBBBBBBBBBBBBBBBBBBBBBBB@BABBBCBDBEBFBGHBIHB$JKLJ\"*MN!" [electric-c-brace c-electric-brace electric-c-semi c-electric-semi&comma electric-c-sharp-sign c-electric-pound mark-c-function c-mark-function indent-c-exp c-indent-exp set-c-style c-set-style c++-beginning-of-defun beginning-of-defun c++-end-of-defun end-of-defun v19 c-emacs-features "Nothing appropriate." na c++-c-mode-syntax-table c-mode-syntaxt-table c++-tab-always-indent c-tab-always-indent c++-always-arglist-indent-p c++-block-close-brace-offset c-offsets-alist c++-paren-as-block-close-p c++-continued-member-init-offset c++-member-init-indent c++-friend-offset c++-access-specifier-offset c++-empty-arglist-indent c++-comment-only-line-offset c-comment-only-line-offset c++-C-block-comments-indent-p c-block-comments-indent-p c++-cleanup-list c-cleanup-list c++-hanging-braces c-hanging-braces-alist c++-hanging-member-init-colon c-hanging-colons-alist c++-auto-hungry-initial-state "Use `c-auto-newline' and `c-hungry-delete-key' instead." c++-auto-hungry-toggle c++-relative-offset-p c++-special-indent-hook c-special-indent-hook c++-delete-function c-delete-function c++-electric-pound-behavior c-electric-pound-behavior c++-hungry-delete-key c-hungry-delete-key c++-auto-newline c-auto-newline c++-match-header-strongly c++-defun-header-strong-struct-equivs c++-version c-version c++-mode-help-address c-mode-help-address c-indent-level c-basic-offset c-brace-imaginary-offset c-brace-offset c-argdecl-indent c-label-offset c-continued-statement-offset c-continued-brace-offset c-default-macroize-column c-backslash-column c++-default-macroize-column vars mapcar #[(elt) " @ A\"" [make-obsolete-variable elt] 3] provide cc-mode] 37)