• Alan Mackenzie's avatar
    Make C++ digit separators work. Amend the handling of single quotes generally · 59d07875
    Alan Mackenzie authored
    Single quotes, even in strings and comments, are now marked with the
    "punctuation" syntax-table property, except where they are validly bounding a
    character literal.  They are font locked with font-lock-warning-face except
    where they are valid.  This is done in C, C++, ObjC, and Java Modes.
    
    * lisp/progmodes/cc-defs.el (c-clear-char-property-with-value-on-char-function)
    (c-clear-char-property-with-value-on-char, c-put-char-properties-on-char): New
    functions/macros.
    
    * lisp/progmodes/cc-fonts.el (c-font-lock-invalid-single-quotes): New function.
    (c-basic-matchers-before): invoke c-font-lock-invalid-single-quotes.
    
    * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Remove
    c-before-after-change-digit-quote from wherever it occurs.  Insert
    c-parse-quotes-before-change into the entries for the languages where it is
    needed.
    (c-before-font-lock-functions): Remove c-before-after-change-digit-quote from
    wherever it occurs.  Insert c-parse-quotes-after-change into the entries for
    the languages which need it.
    (c-has-quoted-numbers): New lang-defconst/-defvar.
    
    * lisp/progmodes/cc-mode.el (c-before-after-change-digit-quote): Remove.
    (c-maybe-quoted-number-head, c-maybe-quoted-number-tail)
    (c-maybe-quoted-number): New defconsts.
    (c-quoted-number-head-before-point, c-quoted-number-tail-after-point)
    (c-quoted-number-straddling-point, c-parse-quotes-before-change)
    (c-parse-quotes-after-change): New functions.
    59d07875
cc-fonts.el 109 KB