• Alan Mackenzie's avatar
    Fix some corner cases in the recognition of C++ raw strings. · efb8921a
    Alan Mackenzie authored
    These are where changing the identifier in a raw string delimiter causes
    different delimiters to match eachother.
    
    * lisp/progmodes/cc-engine.el (c-raw-string-end-delim-disrupted): New
    variable.
    (c-before-change-check-raw-strings): Use new variable.
    (c-after-change-unmark-raw-strings): When typing into an opening delimiter or
    altering its close delimiter causes the opening delimiter to match a later
    closing delimiter, clear all syntax-table char properties from the opening
    delimiter onwards, and set c-new-END to point max.  Also, when changing a
    closing delimiter, check whether its new value matches a previously open
    opening delimiter earlier in the buffer, and amend the syntax-table text
    properties appropriately.
    efb8921a
cc-engine.el 502 KB