* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): insert
c-before-after-change-digit-quote into the C++ value.
(c-before-font-lock-functions): Insert c-depropertize-new-text into the values
for all languages. Insert c-before-after-change-digit-quote into the C++
value.
* lisp/progmodes/cc-mode.el (c-depropertize-CPP): Wrap the function in
c-save-buffer-state.
(c-depropertize-new-text, c-before-after-change-digit-quote): New functions.
* lisp/international/characters.el (standard-case-table): Swap the
order of some lines, to have 'upcase' return the upper-case
variant, not the title-case, for some characters whose lower-case
map to the same codepoints. (Bug#23833)
* lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-state-pp-to-literal):
Put `save-match-data' around calls to `looking-at' to enable the use of the
match data in higher level functions.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarations)
(c-font-lock-cut-off-declarators): Use `limit' rather than `(point-max)' as a
limit to speed up handling of C++ raw strings.
* lisp/simple.el (undo-auto--boundaries): Ensure an undo-boundary after
every command whether it (apparently) changes the buffer or not.
See Bug#23785 for discussion.
It didn't work anyway, but this makes any such errors more obvious
by catching them earlier.
* lisp/url/url-http.el (url-http-create-request):
Use string-to-unibyte (bug#23750).
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): Recognize
"bar (gnu);" as a declarator only when the construct is directly inside a
class (etc.) called "bar".
(c-directly-in-class-called-p): New function.
Also add display of point-min to the c-parse-state debugging output.
* lisp/progmodes/cc-engine.el (c-renarrow-state-cache): When the new
point is inside an old recorded brace pair, clear the cache.
(c-debug-parse-state): Output the value of point-min.
Make sure seq-contains return the element of the sequence instead of t.
* lisp/emacs-lisp/seq.el (seq-contains): Fix the function.
* test/lisp/emacs-lisp/seq-tests.el: Add a regression test.
* lisp/emacs-lisp/map.el (map-merge): Use `map-into' for the first map,
and don't use of an intermediate alist.
(map-merge-with): Same, plus use `cl-callf' to try and avoid performing
3 lookups per inner iteration.
* lisp/progmodes/cc-fonts.el (c-font-lock-declarations): Remove code which
tests for bare declarators.
(c-font-lock-cut-off-declarators): New function.
(c-complex-decl-matchers): insert c-font-lock-cut-off-declarators.
* lisp/help-fns.el (help-definition-prefixes): New var and function.
(help--loaded-p, help--load-prefixes, help--symbol-completion-table):
New functions.
(describe-function, describe-variable): Use them.
* lisp/emacs-lisp/radix-tree.el (radix-tree--prefixes)
(radix-tree-prefixes, radix-tree-from-map): New functions.
* lisp/progmodes/cc-mode.el (c-or-c++-mode): A new function which
analyses contents of the buffer to determine whether it looks like C++
source code and based on that enables c-mode or c++-mode.
(c-or-c++-mode--regexp): Regular expression which, when matches
a buffer, signals file is C++.
* lisp/progmodes/cc-engine.el (c-back-over-compound-identifier): New function.
(c-back-over-member-initializer-braces, c-back-over-list-of-member-inits)
(c-back-over-member-initializers): Call c-back-over-compound-identifier rather
than c-simple-skip-symbol-backward.
* lisp/progmodes/python.el (python-eldoc-get-doc): New defvar.
(python-eldoc-function-timeout)
(python-eldoc-function-timeout-permanent): New defcustoms.
(python-eldoc-function): If python-eldoc--get-doc-at-point times
out, effectively turn off ElDoc in current buffer. (Bug#23609)
* lisp/progmodes/gdb-mi.el (gdb-stopped): Display the expected
"Value returned" message in response to "finish", when not
produced by GDB/MI. (Bug#23720)
* lisp/international/ucs-normalize.el
(ucs-normalize-hfs-nfd-pre-write-conversion): Refactor.
May address an issue where Emacs consumed large amounts of CPU
because of neverending toolbar updating (which was caused
by, but also called this function).
* lisp/wid-edit.el (widget-keymap): Bind `widget-button-click'
to mouse-1/-2 instead of down-mouse-1/-2. Suggested by Stefan
Monnier. (Bug#19185, Bug#20398)
This reverts commit 72166f2f3d.
That commit did more harm than good (Bug#23571).
; I hope the next release from master is indeed 26.1, but for reasons
; that passeth my understanding we currently call it 25.2 everywhere else,
; so we should at least be consistent.
* lisp/progmodes/cc-engine.el (c-raw-string-pos, c-depropertize-raw-string)
(c-depropertize-raw-strings-in-region,
c-before-change-check-raw-strings)
(c-propertize-raw-string-opener, c-after-change-re-mark-raw-strings): New
functions.
* lisp/progmodes/cc-fonts.el (c-basic-matchers-before): Insert a clause for
c-font-lock-raw-strings.
(c-font-lock-raw-strings): New function.
* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Insert
c-before-change-check-raw-strings into the C++ value, and c-depropertize-CPP
into the values for C, C++, and Objective C.
(c-before-font-lock-functions): Insert c-after-change-re-mark-raw-strings into
the C++ value.
* lisp/progmodes/cc-mode.el (c-old-BEG, c-old-END): New variables.
(c-depropertize-CPP): New function, extracted from
c-neutralize-syntax-in-and-mark-CPP.
(c-neutralize-syntax-in-and-mark-CPP): Remove the call to
c-clear-char-property-with-value for 'syntax-table value '(1) at the beginning
of the function.
(c-after-change): Set c-old-BEG and c-old-END to the current values of
c-new-BEG and c-new-END.