1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 22:50:59 -08:00
Commit graph

136072 commits

Author SHA1 Message Date
Philipp Stephani
3d30b651ca * src/emacs-module.c: Add an additional requirement for API changes. 2019-04-23 23:39:35 +02:00
Paul Eggert
51595f5340 Remove some unnecessary #ifdef directives
These directives are in files that are compiled only if the
symbols are defined.
* src/gfilenotify.c: Remove unnecessary ‘#ifdef HAVE_GFILENOTIFY’.
* src/inotify.c: Remove unnecessary ‘#ifdef HAVE_INOTIFY’.
* src/kqueue.c: Remove unnecessary ‘#ifdef HAVE_KQUEUE’.
2019-04-23 13:51:57 -07:00
Stefan Monnier
26f9a77f24 * etc/package-keyring.gpg: Add the 2019 key 2019-04-23 16:36:59 -04:00
Paul Eggert
64d0cd9810 Remove font.c code commented out for a decade
* src/font.c (LSTRING_HEADER_SIZE, LSTRING_GLYPH_SIZE, check_gstring)
(check_otf_features, otf_list, otf_tag_symbol, otf_open)
(font_otf_capability, generate_otf_features)
(font_otf_DeviceTable, font_otf_ValueRecord)
(font_otf_Anchor, Ffont_drive_otf, Ffont_otf_alternates)
(Fdraw_string, syms_of_font): Remove "experimental and not
tested much" code that has been "#if 0"-ed out for more than a
decade and which was getting in the way of maintenance.
2019-04-23 13:30:14 -07:00
Philipp Stephani
259dfd20b9 Use three-argument form for out-of-range errors.
This provides more debugging hints for callers.

* src/emacs-module.c (module_copy_string_contents): Use three-argument
form of args-out-of-range.
2019-04-23 16:59:46 +02:00
Philipp Stephani
eaea40b337 Use high-level integer conversion macro in a few cases.
INT_TO_INTEGER is more obviously correct and means we don’t have to
worry about data type sizes and signedness.

* src/json.c (json_parse_error): Use INT_TO_INTEGER.  The tiny
performance gain of make_fixed_natnum isn’t worth the trouble then
signaling an error.
2019-04-23 16:51:10 +02:00
Mattias Engdegård
ecab8835a0 Rename auto-revert-notify-watch-descriptor-hash-list
* lisp/autorevert.el
(auto-revert-notify-watch-descriptor-hash-list):
Rename to auto-revert--buffers-by-watch-descriptor.  Improved doc string.
(auto-revert-notify-rm-watch, auto-revert-notify-add-watch,
auto-revert-notify-handler): Use new name.
2019-04-23 16:40:51 +02:00
Michael Albinus
e8c07cae5f Remote processes cannot use a pipe process for stderr
* doc/lispref/processes.texi (Asynchronous Processes):
(Accepting Output): Remote processes cannot use a pipe process for
stderr.
2019-04-23 16:07:38 +02:00
Philipp Stephani
d9d592dd44 * src/json.c (json_make_string): Add missing cast. 2019-04-23 15:31:17 +02:00
Eli Zaretskii
db2c930849 Speed up JSON parsing
Thanks to Dmitry Gutov <dgutov@yandex.ru> for running many
benchmarks and for useful discussions.
* src/json.c (json_make_string): Speed up parsing of JSON
strings by optimizing the normal case of a valid UTF-8 string
being returned from libjansson.  (Bug#31138)
2019-04-23 13:20:46 +03:00
Philipp Stephani
b59429a43e Small fix for a JSON unit test.
* test/src/json-tests.el (json-parse-string/null): Make JSON object
syntactically valid.  This test is supposed to check whether an
escaped null character causes an error, but without quoting the string
it would be syntactically invalid in any case.
2019-04-23 12:00:32 +02:00
Alan Mackenzie
0d5caa9a0c Optimize for typing characters into long C++ raw strings.
* lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare)
(c-font-lock-objc-methods) (c-font-lock-declarations, c-font-lock-enum-tail)
(c-font-lock-cut-off-declarators, c-font-lock-enclosing-decls): If the chunk
been fontified consists entirely of comments and strings, don't attempt to
perform the function's action.

* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): Don't
expand (c-new-BEG c-new-END) unnecessarily to the entire raw string being
fontified.
(c-fl-decl-start, c-fl-decl-end): When in a (raw or otherwise) string, don't
return a position outside of the string (which used to cause unneeded
fontification).
2019-04-23 09:16:05 +00:00
YAMAMOTO Mitsuharu
085929ca93 Release xft_data in widget destroy callback to avoid visual distraction
* lwlib/lwlib-int.h (struct _widget_instance) [HAVE_XFT]: Remove nr_xft_data.
* lwlib/lwlib-Xaw.c (find_xft_data, xaw_update_one_widget) [HAVE_XFT]: Loop
while widget member is not NULL instead of using nr_xft_data.
(xaw_destroy_instance) [HAVE_XFT]: Move xft_data release code from here ...
(destroy_xft_data) [HAVE_XFT]: ... to here.
(make_dialog) [HAVE_XFT]: Add destroy_xft_data as destroy callback for dialog.
2019-04-23 17:27:04 +09:00
Paul Eggert
6fa8d3c894 Let plain ‘make’ work even not GNU Make
* Makefile.in (top_distclean): Clean makefile as well as Makefile.
* configure.ac: If not using plain ‘make’, create a makefile
so that plain ‘make’ simply calls $(MAKE).
2019-04-22 20:44:54 -07:00
Paul Eggert
7cc66173e4 Revert Vinternal_interpreter_environment tweak
Stefan Monnier pointed out examples like (funcall `(closure
,(let ((cycle (list nil))) (setcdr cycle cycle)) () a)),
where the user can set Vinternal_interpreter_environment
indirectly.
* src/eval.c (Fsetq): Revert recent change, going back to Fassq.
2019-04-22 20:02:32 -07:00
Paul Eggert
27540be5c6 Improve UBSan discussion in etc/DEBUG
* etc/DEBUG: Improve -gdwarf-N documentation.
Go into more detail about UndefinedBehaviorSanitizer.
2019-04-22 17:26:25 -07:00
Paul Eggert
b8e7be2833 Tweak Vinternal_interpreter_environment lookup
* src/eval.c (Fsetq, eval_sub): Use assq_no_quit instead
of Fassq for a list that cannot contain cycles or be that long.
2019-04-22 12:35:14 -07:00
Paul Eggert
8882419798 Improve wur coverage on older GCCs
* src/conf_post.h (__has_attribute_warn_unused_result):
New macro for compilers lacking __has_attribute.
* src/systhread.h (__has_attribute): Remove ineffective define.
(ATTRIBUTE_WARN_UNUSED_RESULT): Work better on GCC 3.4 thru 4.
2019-04-22 12:25:53 -07:00
Paul Eggert
4bf3c94939 Go back to old way of checking json int range
Although the lisp.h macros really need improvement,
INTEGER_TO_INT is not the right way to go about it, as it
causes conversion from intmax_t to uintmax_t and back again,
which can cause a signal if the value is negative.
* src/lisp.h (INTEGER_TO_INT, ranged_integer_to_int)
(ranged_integer_to_uint): Remove, reverting recent changes to
this file.
* src/json.c (lisp_to_json): Revert to previous code,
as the change messes up with uintmax_t<->intmax_t conversion.
2019-04-22 11:43:28 -07:00
Philipp Stephani
981470e359 * src/lisp.h (INTEGER_TO_INT): Fix bug. 2019-04-22 19:04:54 +02:00
Mattias Engdegård
11e75b031b Precise handling of filenotify `stopped' events
* lisp/autorevert.el (auto-revert-notify-handler):
When getting a `stopped' event, deal with it for the buffers it applies to,
rather than for all buffers in auto-revert mode.
2019-04-22 18:22:20 +02:00
Mattias Engdegård
f20c1ffd05 * autorevert.el (auto-revert-notify-rm-watch): Simplify. 2019-04-22 18:06:10 +02:00
Mattias Engdegård
87d1dc19c9 Revert "Don't remove notify descriptor that is already gone"
This reverts commit e9e807e931,
which is no longer necessary as `file-notify-rm-watch' has been
made robust against reentry.
2019-04-22 17:55:32 +02:00
Mattias Engdegård
c243aabfa8 Make file-notify-rm-watch robust against reentry
Allow file-notify callbacks to call `file-notify-rm-watch', harmlessly,
after receiving a `stopped' event without triggering recursion.

* lisp/filenotify.el (file-notify--watch): Note that `callback' can be nil.
(file-notify--rm-descriptor): Set the `callback' field to nil before
sending `stopped'.
(file-notify-rm-watch): Don't do anything if the `callback' field is nil.
2019-04-22 17:54:32 +02:00
Philipp Stephani
4e2ea400cb Introduce a helper macro to convert a Lisp integer to a C integer.
This is similar to CONS_TO_INTEGER.  The inverse (INT_TO_INTEGER)
already exists.

* src/lisp.h (INTEGER_TO_INT): New macro.
(ranged_integer_to_int, ranged_integer_to_uint): New
functions.

* src/json.c (lisp_to_json): Use helper macro.
2019-04-22 17:36:52 +02:00
Philipp Stephani
3b4e312cfe Improve documentation around standard error pipes (Bug#35328).
* doc/lispref/processes.texi (Asynchronous Processes): Document
existence and properties of the standard error process.
(Accepting Output): Document that one has to accept output from the
standard error process separately.
2019-04-22 16:07:27 +02:00
Philipp Stephani
f9659e648c Module API: Don’t require null-terminated strings in make_string.
* emacs-module.c (module_make_string): Use make_unibyte_string, which
doesn’t require its argument to be null-terminated.  Since it always
returns a heap-allocated string, we don’t have to copy it any more
while decoding.
(module_decode): New helper function.
2019-04-22 15:44:37 +02:00
Philipp Stephani
ca3ad9746d Use utf-8-unix for coding system conversions in the module API.
Factor out conversions into helper functions to provide a simpler
interface.

* src/emacs-module.c (module_encode, module_decode_copy): New helper
functions.
(module_make_function, module_copy_string_contents)
(module_make_string): Use them.
2019-04-22 15:44:37 +02:00
Basil L. Contovounesios
4430a9b54f Improve pure and side-effect-free docs
For discussion, see thread starting at:
https://lists.gnu.org/archive/html/emacs-devel/2019-04/msg00316.html
* doc/lispref/customize.texi (Composite Types): Do not overspecify
:match-alternatives predicates.
* doc/lispref/eval.texi (Intro Eval): Anchor definition of "side
effect" for cross-referencing...
* doc/lispref/functions.texi (What Is a Function): ...from here.
Define what a pure function is.
* doc/lispref/internals.texi (Writing Emacs Primitives): Describe
currently preferred approach to marking primitives as pure and
side-effect-free.
* doc/lispref/symbols.texi (Standard Properties): Expand description
of pure and side-effect-free properties.
2019-04-22 13:48:20 +01:00
Philipp Stephani
a2a51b4e94 Refactoring: Inline a few macros.
Now that CATCHER_ALL catches signals as well, we can simplify
MODULE_HANDLE_NONLOCAL_EXIT a bit.

* src/emacs-module.c (MODULE_SETJMP, MODULE_SETJMP_1): Remove.
(MODULE_HANDLE_NONLOCAL_EXIT): Inline MODULE_SETJMP and
MODULE_SETJMP_1.
2019-04-22 11:36:59 +02:00
Eli Zaretskii
4ec0244593 ; * etc/NEWS: Improve wording of a recent addition. 2019-04-22 11:12:45 +03:00
Michael Albinus
0289498211 Some changes in tramp-tests
* test/lisp/net/tramp-tests.el (tramp-test32-shell-command):
Check for backward compatibility.
(tramp-test33-environment-variables): Apply a better check for
unset variable.
2019-04-22 09:58:37 +02:00
Paul Eggert
b20d8a9322 Mention AddressSanitizer etc. in etc/DEBUG
* etc/DEBUG: Modernize for AddressSanitizer etc.
* etc/NEWS: Defer to etc/DEBUG for this.
2019-04-21 23:16:48 -07:00
Paul Eggert
1ea048f6e0 Remove --enable-checking=xmallocoverrun
It doesn’t work anymore, and these days ‘gcc -fsanitize=address’
does a better job anyway.
* configure.ac: Remove the option.
* configure.ac (ac_xmalloc_overrun, XMALLOC_OVERRUN_CHECK):
* src/alloc.c (XMALLOC_OVERRUN_CHECK_OVERHEAD)
(XMALLOC_OVERRUN_CHECK_SIZE, XMALLOC_OVERRUN_SIZE_SIZE)
(xmalloc_overrun_check_header, xmalloc_overrun_check_trailer)
(xmalloc_put_size, xmalloc_get_size, overrun_check_malloc)
(overrun_check_realloc, overrun_check_free):
Remove.  All uses removed.
* etc/NEWS: Mention this.
2019-04-21 23:16:48 -07:00
Paul Eggert
72067661fe Remove --enablechecking=conslist configure option
* configure.ac: Remove the option.
* configure.ac (ac_gc_check_cons_list, GC_CHECK_CONS_LIST):
* src/alloc.c (check_cons_list) [GC_CHECK_CONS_LIST]:
* src/lisp.h (lisp_h_check_cons_list, check_cons_list):
Remove.  All uses removed.
* etc/NEWS: Mention this.
2019-04-21 23:16:48 -07:00
Paul Eggert
418400ab7b Simplify XPNTR
Because XPNTR now uses ATTRIBUTE_NO_SANITIZE_UNDEFINED,
it can be simplified.
* src/alloc.c (macro_PNTR_ADD, PNTR_ADD, macro_XPNTR): Remove.
(XPNTR): Open-code rather than using the removed macros and
functions.  Also, simplify by using LISP_WORD_TAG.
2019-04-21 21:45:37 -07:00
Paul Eggert
e85bff0bbb Fix drain_reloc_list alignment bug
* src/pdumper.c (dump_charset): Use alignof (struct charset),
not alignof (int), since struct charset might be more strictly
aligned than int.  I think this is just a minor performance
issue, but we might as well use the correct alignment.
(drain_reloc_list): Use an alignment instead of a size for the
output alignment.  This prevents undefined behavior when
alignof (struct emacs_reloc) == 8 and sizeof (dump_off) == 4
when building on x86-64 with gcc -fsanitize=undefined.
2019-04-21 21:16:26 -07:00
Paul Eggert
4a5ed6b05a Port dump_bitset_clear to -fsanitize=undefined
* src/pdumper.c (dump_bitset_clear):
Pacify -fsanitize=undefined by avoiding memset (NULL, x, 0),
which strictly speaking has undefined behavior although it
works on all production platforms I know.
2019-04-21 21:16:26 -07:00
Paul Eggert
f67bc3f12b Port to recent gcc -fsanitize=undefined
* src/alloc.c (XPNTR): Add ATTRIBUTE_NO_SANITIZE_UNDEFINED and
remove ATTRIBUTE_UNUSED.  Do not define as a macro, so that
ATTRIBUTE_NO_SANITIZE_UNDEFINED works.
* src/lisp.h (lisp_h_XSYMBOL): Remove.  All uses removed.
With recent GCC the macro does not work with -fsanitize=undefined,
and the macro can be omitted as its only function is to optimize -O0.
2019-04-21 21:16:26 -07:00
Basil L. Contovounesios
3a618e5f89 Move side-effect-free from unsafep.el to subr.el
* lisp/emacs-lisp/unsafep.el: Move side-effect-free property setting
from here...
* lisp/subr.el: ...to here, as function declarations for modularity.
2019-04-21 19:04:13 +01:00
Paul Eggert
2ea55c2774 Fix double-free in pdumper
Revert the double-free bug that I introduced in
2019-03-11T15:20:54Z!eggert@cs.ucla.edu.
* src/pdumper.c (dump_mmap_reset): Do not free the private member;
that’s the release function’s job.
(dump_mm_heap_cb_release): Free cb if its refcount goes to zero.
(dump_mmap_contiguous_heap): Mention memory leak in comment.
2019-04-21 09:59:33 -07:00
Glenn Morris
d9664f0d9e Merge from origin/emacs-26
9d7e08d (origin/emacs-26) Avoid false positives and false negatives o...
75b589c Fix markup related to quoting in Info
fd6ff29 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
cd2204f Add a package: line to c-submit-bug-report.
a992dca ; Remove empty NEWS sections
ea67270 ; Add NEWS sections for 26.3
45b0946 ; Bump Emacs version to 26.2.50
aae8cc3 * admin/admin.el (set-version): Add NEWS headers for a .50 ve...
2019-04-21 07:51:38 -07:00
Glenn Morris
d2b78ea1d4 ; Merge from origin/emacs-26
The following commit was skipped:

bacdaa5 Use pkg-config to find lcms2 CFLAGS and LIBS (Bug#30346)
2019-04-21 07:51:38 -07:00
Glenn Morris
828a6eb64f Merge from origin/emacs-26
cd2204f Add a package: line to c-submit-bug-report.
a992dca ; Remove empty NEWS sections
ea67270 ; Add NEWS sections for 26.3

Conflicts:
	etc/NEWS
2019-04-21 07:51:38 -07:00
Glenn Morris
86a8b49b22 ; Merge from origin/emacs-26
The following commit was skipped:

45b0946 ; Bump Emacs version to 26.2.50
2019-04-21 07:51:37 -07:00
Glenn Morris
e8d483971f Merge from origin/emacs-26
aae8cc3 * admin/admin.el (set-version): Add NEWS headers for a .50 ve...
2019-04-21 07:51:37 -07:00
Glenn Morris
5185b39106 ; Merge from origin/emacs-26
The following commit was skipped:

f90a336 Backport doc improvement in ELisp manual
2019-04-21 07:51:37 -07:00
Glenn Morris
50d00e7153 Merge from origin/emacs-26
037970f Document insert-image-file's return value (Bug#32978)
598b45a Autoload cua-toggle-rectangle-mark (Bug#34947)
95bd56d Tell xclip not to expect job-control under eshell (Bug#35257)
9997bbb ; * src/emacs.c: Fix typo in comment (Bug#35320).
a4ad7be Fix off-by-one-link error in image--set-property
2019-04-21 07:51:36 -07:00
Mauro Aranda
9d7e08dd8f Avoid false positives and false negatives of Info-quoted face
* lisp/info.el (Info-mode-font-lock-keywords): Modify the regexp, for
matching single quotes of opening single quote and closing single
quote, and avoid matching text followed by a curly quote when it is
not quoting. (Bug#35202)
2019-04-21 14:58:56 +03:00
Eli Zaretskii
75b589c7d2 Fix markup related to quoting in Info
* doc/misc/sc.texi (Citations): Fix markup of '>'.
* doc/misc/mh-e.texi (Speedbar): Fix markup in a @table.
* doc/misc/calc.texi (Yacas Language Mode): Fix a typo.
* doc/emacs/mark.texi (Setting Mark): Remove duplicate
quoting.  (Bug#35202)
2019-04-21 14:56:04 +03:00