• Alan Mackenzie's avatar
    Amend to indent and fontify macros "which include their own semicolon" · 536610a4
    Alan Mackenzie authored
    correctly, using the "virtual semicolon" mechanism.
    cc-defs.el: Update "virtual semicolon" comments.
    cc-engine.el (c-crosses-statement-barrier-p): Recoded to scan one line at
    at time rather than having \n and \r explicitly in c-stmt-delim-chars
    (for some modes, e.g. AWK).
    (c-forward-label): Amend for virtual semicolons.
    (c-at-macro-vsemi-p, c-macro-vsemi-status-unknown-p): New functions
    cc-fonts.el (c-font-lock-declarations): Take account of the new C macros.
    cc-langs.el (c-at-vsemi-p-fn, c-vsemi-status-unknown-p-fn): move to
    earlier in the file.
    (c-opt-cpp-symbol, c-line-comment-start-regexp): New language variables.
    (c-opt-cpp-macro-define): Make into a full language variable.
    (c-stmt-delim-chars, c-stmt-delim-chars-with-comma): Special value for
    AWK Mode (including \n, \r) removed, no longer needed.
    cc-mode.el (c-mode, c++-mode, objc-mode): Invoke
    cc-vars.el (c-macro-with-semi-re, c-macro-names-with-semicolon): New
    (c-make-macro-with-semi-re): New function
    cc-mode.texi (Indentation Commands): Mention "macros with semicolons".
    (Other Special Indentations): Add an xref to "Macros with ;".
    (Customizing Macros): Add stuff about syntax in macros.  Add an xref to
    "Macros with ;".
    (Macros with ;): New page.
cc-mode.el 63.8 KB