* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): The variable
before-sws-pos should record the position of a closing paren/brace/bracket
before moving backwards over a sexp. When there is a syntactic WS macro
between the starting point and the closing p/b/b, setq before-sws-pos again
after moving backward over the macro.
Avoid the abuse of (eval `(defvar ...)) which tends to end up
adding redundant entries in `load-history`, as discussed in
https://lists.gnu.org/r/help-gnu-emacs/2019-03/msg00237.html
(custom-initialize-default): Don't add to load-history.
(custom-declare-variable): Use internal--define-uninitialized-variable
and only add the var to load-history once. Do it before calling
`initialize` so the special-variable-p flag is set.
* src/eval.c (Finternal__define_uninitialized_variable): New function.
(Fdefvar, Fdefconst): Use it.
(syms_of_eval): Defsubr' it.
The module code can’t possibly work on weird platforms where
function pointers are wider than data pointers, so there’s no need
to bother with the stackoverflow-like approach that is intended
only for portability to such platforms. Besides, the
stackoverflow-like approach does not work well on weird platforms
where CHAR_BIT is not a multiple of 4.
* src/lisp.h (pMx): New macro.
* src/print.c (data_from_funcptr) [HAVE_MODULES]: New function.
(print_vectorlike) [HAVE_MODULES]: Use it.
(print_object): Make sure buf is big enough for this.
Strip possible source/destination prefixes such as a/ and b/
from directory names. (Bug#35420)
(ediff-fixup-patch-map, ediff-dispatch-file-patching-job)
(ediff-patch-file-internal): Replace string-match with string-match-p.
* lisp/dired-aux.el (dired-map-over-marks-check): Use ngettext
instead of dired-plural-s.
(dired-create-files): Also add colon after operation name.
(dired-compare-directories): Use ngettext and format-message.
(dired-do-compress-to): Use ngettext.
* lisp/dired.el (dired-internal-do-deletions)
(dired-clean-up-after-deletion): Use ngettext instead of dired-plural-s.
* test/data/emacs-module/mod-test.c (NDEBUG): Undef, to prevent
GCC from complaining “error: unused variable ‘dummy’” and failing
to build the test, if --enable-gcc-warnings.
* test/data/emacs-module/mod-test.c (Fmod_test_nanoseconds)
[__MINGW32__]: Use _Static_assert, not static_assert, as the
latter is not available in mingw.org's MinGW's assert.h.
*lisp/display-fill-column-indicator.el: Fixed character selection for
the indicator based in the current faces. Extended condition to set
display-fill-column-indicator-character in graphical displays.
*src/xdisp.c: Fixed some long lines.
*src/xdisp.c: Fixed docstring for display-fill-column-indicator-column
*etc/NEWS: Concordance fix in the display-fill-column-indicator part.
*doc/emacs/display.texi: Name mismatch fix.
*etc/NEWS: reduced the comments about fill-column-indicator
*doc/emacs/display.texi: Added documentation for fill-column-indicator
in this section in the manual
Put all information about auto-revert into a section of its own, and
organise the text in a more logical way. Previously it was mainly
described in the section about reverting (bug#35418).
* doc/emacs/files.texi (Files): Adjust menu.
(Reverting, Auto Revert, Autorevert): Add node `Auto Revert' and move
text on that topic from `Reverting', rearranged. Turn the old
`Autorevert' node into a subsection under `Auto Revert'.
* doc/emacs/arevert-xtra.texi (Autorevert): Rename and turn into
subsubsection.
* doc/emacs/buffers.texi (Several Buffers): Adjust references.
* doc/emacs/emacs.texi (Top): Adjust menu.
* doc/emacs/emacs-xtra.texi (Top): Adjust menu.
(Non-File Buffers): Add node and section lines.
GCC special-cases the type ‘void (*)(void)’ to not emit warnings when
cast, see
https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wcast-function-type.
Make use of this to remove a warning suppression.
* src/dynlib.h: Use void (*)(void) as generic function pointer type.
* src/emacs-module.c: Remove warning suppression.
Because all other objects are compiled without -fPIC, we can’t use
them when linking the test module. Instead, use the source files
directly.
* test/Makefile.in (HYBRID_MALLOC, LIBEGNU_ARCHIVE): Remove.
($(test_module)): Use source files instead of objects and archives.
* src/print.c (print_vectorlike): Don’t pass a function pointer to
‘snprintf’, as that is undefined behavior. Instead, print the
individual bytes making up the function pointer.
* lisp/net/tramp.el (tramp-file-notify-process-sentinel): New defun.
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Set process sentinel.
* lib-src/make-fingerprint.c (main): Don't consider multiple
instances of the fingerprint to be an error, as this can
happen with clang and -flto. Instead, replace all instances
of the fingerprint. There is a tiny chance that this will
silently corrupt the Emacs executable.
This patch suggests that we should go back to fingerprinting
the inputs to the linker instead of its output, as the new
fingerprinting scheme is unnecessarily complicated and this
complexity reduces reliability. The old scheme (i.e., before
commit 2019-05-14T23:31:24Z!eggert@cs.ucla.edu) was simpler
and more portable and good enough, and it's looking like it
would be less trouble in practice than the new scheme.
* lisp/ansi-color.el (ansi-color-apply-on-region): Reset temporary
markers after finishing with them.
(ansi-color-apply-text-property-face): New function.
* lisp/eshell/esh-mode.el (eshell-handle-ansi-color):
* lisp/man.el (Man-fontify-manpage): Use it as the
`ansi-color-apply-face-function' while calling
`ansi-color-apply-on-region'. Use `font-lock-face' to propertize
instead of `face'.
* src/.gdbinit (xprintsym): Don't attempt to print the
symbol's name if it is not yet set. This happens with
built-in symbols at the beginning of 'main'.
Problem reported by Jeffrey Walton in:
https://lists.gnu.org/r/emacs-devel/2019-05/msg00041.html
* Makefile.in (CHECK_TARGETS): New macro; use it
to simplify 'check' and similar rules.
($(CHECK_TARGETS)): If tests are missing, do not fail
after issuing a diagnostic. Just skip the tests.
* INSTALL: Omit filesystem space estimates. These estimates
were (1) wrong and (2) no longer important nowadays, as people
have plenty of space. Instead, start with how to get and
unpack an Emacs tarball. Don’t say "disk" as it’s often not
disk nowadays. Update URLs.
* lib-src/etags.c [!DEBUG]: Do not define NDEBUG,
as that’s conf_post.h’s job now.
[NDEBUG]: Do not redefine ‘assert’, as that works around
ancient bugs (e.g., sunos4 pcc) that don’t matter any more,
as can be seen that other Emacs source files that successfully
use assert.h without this workaround.