]> git.eshelyaron.com Git - emacs.git/log
emacs.git
5 years agoRevert "Remove font.c code commented out for a decade"
Eli Zaretskii [Wed, 24 Apr 2019 06:38:03 +0000 (09:38 +0300)]
Revert "Remove font.c code commented out for a decade"

This reverts commit 64d0cd9810af6bd0c378fc6bc666c76ddfa97e40.

Rationale: any font-related code and comments, even if unused
for decades, serves as important source of useful information
in an area of Emacs code that is notoriously under-documented.

Please do NOT remove this stuff until we have an active
expert in this are on board, who will then decide whether
this can be retired.

5 years agoDon't link libXft when using cairo
YAMAMOTO Mitsuharu [Wed, 24 Apr 2019 03:31:37 +0000 (12:31 +0900)]
Don't link libXft when using cairo

* configure.ac: Check cairo early.  Don't try Xft if cairo is used.
* lwlib/lwlib-utils.h [USE_CAIRO]: Include cairo.h and fontconfig.h.
(XftFont, XftDraw, XftColor, XGlyphInfo) [USE_CAIRO]: New typedefs.
(XftFontOpenName, XftFontClose, XftDrawCreate, XftDrawDestroy)
(XftDrawRect, XftDrawStringUtf8, XftTextExtentsUtf8) [USE_CAIRO]: New macros.
(crxft_font_open_name, crxft_font_close, crxft_draw_create)
(crxft_draw_rect, crxft_draw_string, crxft_text_extents) [USE_CAIRO]: New
externs.
* lwlib/lwlib-utils.c [USE_CAIRO]: Include math.h, cairo-ft.h, and
cairo-xlib.h.
(crxft_font_open_name, crxft_font_close, crxft_draw_create)
(crxft_set_source_color, crxft_draw_rect, crxft_draw_string)
(crxft_text_extents) [USE_CAIRO]: New Xft compatibility functions.
* lwlib/xlwmenuP.h [USE_CAIRO]: Include lwlib-utils.h.
* lwlib/xlwmenu.c (display_menu_item) [USE_CAIRO]: Call
cairo_surface_mark_dirty and cairo_surface_flush.
* lwlib/lwlib-Xaw.c [USE_CAIRO]: Include stdlib.h and lwlib-utils.h.
(draw_text) [USE_CAIRO]: Call cairo_surface_flush.
* src/xsettings.c [USE_CAIRO]: Include fontconfig.h
(apply_xft_settings) [!HAVE_XFT]: Don't call XftDefaultSubstitute or
XftDefaultSet.
* lwlib/lwlib-Xaw.c:
* lwlib/lwlib-int.h:
* lwlib/xlwmenu.c:
* lwlib/xlwmenuP.h:
* src/xrdb.c:
* src/xsettings.c:
* src/xterm.c: Replace all #ifdef HAVE_XFT with #if defined USE_CAIRO ||
defined HAVE_XFT.
* src/xfns.c (x_default_font_parameter): Replace #ifdef HAVE_XFT with #if
defined USE_CAIRO || defined HAVE_XFT.

5 years ago* lisp/emacs-lisp/timer-list.el: Fix header-line alignment
Stefan Monnier [Tue, 23 Apr 2019 21:54:13 +0000 (17:54 -0400)]
* lisp/emacs-lisp/timer-list.el: Fix header-line alignment

Enable lexical-binding.
(cl-print-compiled, cl-print-compiled-button): Declare.
(timer-list-mode): Add spacing to align the header.

5 years ago* src/emacs-module.c: Add an additional requirement for API changes.
Philipp Stephani [Tue, 23 Apr 2019 21:39:35 +0000 (23:39 +0200)]
* src/emacs-module.c: Add an additional requirement for API changes.

5 years agoRemove some unnecessary #ifdef directives
Paul Eggert [Tue, 23 Apr 2019 20:51:07 +0000 (13:51 -0700)]
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’.

5 years ago* etc/package-keyring.gpg: Add the 2019 key
Stefan Monnier [Tue, 23 Apr 2019 20:36:59 +0000 (16:36 -0400)]
* etc/package-keyring.gpg: Add the 2019 key

5 years agoRemove font.c code commented out for a decade
Paul Eggert [Tue, 23 Apr 2019 20:29:42 +0000 (13:29 -0700)]
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.

5 years agoUse three-argument form for out-of-range errors.
Philipp Stephani [Tue, 23 Apr 2019 14:59:46 +0000 (16:59 +0200)]
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.

5 years agoUse high-level integer conversion macro in a few cases.
Philipp Stephani [Tue, 23 Apr 2019 14:48:49 +0000 (16:48 +0200)]
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.

5 years agoRename auto-revert-notify-watch-descriptor-hash-list
Mattias Engdegård [Tue, 23 Apr 2019 12:31:22 +0000 (14:31 +0200)]
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.

5 years agoRemote processes cannot use a pipe process for stderr
Michael Albinus [Tue, 23 Apr 2019 14:07:38 +0000 (16:07 +0200)]
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.

5 years ago* src/json.c (json_make_string): Add missing cast.
Philipp Stephani [Tue, 23 Apr 2019 13:31:04 +0000 (15:31 +0200)]
* src/json.c (json_make_string): Add missing cast.

5 years agoSpeed up JSON parsing
Eli Zaretskii [Tue, 23 Apr 2019 10:20:46 +0000 (13:20 +0300)]
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)

5 years agoSmall fix for a JSON unit test.
Philipp Stephani [Tue, 23 Apr 2019 09:59:29 +0000 (11:59 +0200)]
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.

5 years agoOptimize for typing characters into long C++ raw strings.
Alan Mackenzie [Tue, 23 Apr 2019 09:16:05 +0000 (09:16 +0000)]
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).

5 years agoRelease xft_data in widget destroy callback to avoid visual distraction
YAMAMOTO Mitsuharu [Tue, 23 Apr 2019 08:27:04 +0000 (17:27 +0900)]
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.

5 years agoLet plain ‘make’ work even not GNU Make
Paul Eggert [Tue, 23 Apr 2019 03:44:11 +0000 (20:44 -0700)]
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).

5 years agoRevert Vinternal_interpreter_environment tweak
Paul Eggert [Tue, 23 Apr 2019 03:02:20 +0000 (20:02 -0700)]
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.

5 years agoImprove UBSan discussion in etc/DEBUG
Paul Eggert [Tue, 23 Apr 2019 00:26:11 +0000 (17:26 -0700)]
Improve UBSan discussion in etc/DEBUG

* etc/DEBUG: Improve -gdwarf-N documentation.
Go into more detail about UndefinedBehaviorSanitizer.

5 years agoTweak Vinternal_interpreter_environment lookup
Paul Eggert [Mon, 22 Apr 2019 19:34:26 +0000 (12:34 -0700)]
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.

5 years agoImprove wur coverage on older GCCs
Paul Eggert [Mon, 22 Apr 2019 19:25:40 +0000 (12:25 -0700)]
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.

5 years agoGo back to old way of checking json int range
Paul Eggert [Mon, 22 Apr 2019 18:40:13 +0000 (11:40 -0700)]
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.

5 years ago* src/lisp.h (INTEGER_TO_INT): Fix bug.
Philipp Stephani [Mon, 22 Apr 2019 16:58:51 +0000 (18:58 +0200)]
* src/lisp.h (INTEGER_TO_INT): Fix bug.

5 years agoPrecise handling of filenotify `stopped' events
Mattias Engdegård [Sat, 20 Apr 2019 11:16:37 +0000 (13:16 +0200)]
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.

5 years ago* autorevert.el (auto-revert-notify-rm-watch): Simplify.
Mattias Engdegård [Mon, 22 Apr 2019 16:04:00 +0000 (18:04 +0200)]
* autorevert.el (auto-revert-notify-rm-watch): Simplify.

5 years agoRevert "Don't remove notify descriptor that is already gone"
Mattias Engdegård [Mon, 22 Apr 2019 15:55:32 +0000 (17:55 +0200)]
Revert "Don't remove notify descriptor that is already gone"

This reverts commit e9e807e9317ca7aa99a5dd220ee8586f8f4331bf,
which is no longer necessary as `file-notify-rm-watch' has been
made robust against reentry.

5 years agoMake file-notify-rm-watch robust against reentry
Mattias Engdegård [Sat, 20 Apr 2019 08:19:52 +0000 (10:19 +0200)]
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.

5 years agoIntroduce a helper macro to convert a Lisp integer to a C integer.
Philipp Stephani [Mon, 22 Apr 2019 15:29:06 +0000 (17:29 +0200)]
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.

5 years agoImprove documentation around standard error pipes (Bug#35328).
Philipp Stephani [Sun, 21 Apr 2019 16:09:38 +0000 (18:09 +0200)]
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.

5 years agoModule API: Don’t require null-terminated strings in make_string.
Philipp Stephani [Mon, 22 Apr 2019 13:43:52 +0000 (15:43 +0200)]
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.

5 years agoUse utf-8-unix for coding system conversions in the module API.
Philipp Stephani [Mon, 22 Apr 2019 13:39:39 +0000 (15:39 +0200)]
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.

5 years agoImprove pure and side-effect-free docs
Basil L. Contovounesios [Wed, 17 Apr 2019 15:34:47 +0000 (16:34 +0100)]
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.

5 years agoRefactoring: Inline a few macros.
Philipp Stephani [Mon, 22 Apr 2019 09:36:59 +0000 (11:36 +0200)]
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.

5 years ago; * etc/NEWS: Improve wording of a recent addition.
Eli Zaretskii [Mon, 22 Apr 2019 08:12:45 +0000 (11:12 +0300)]
; * etc/NEWS: Improve wording of a recent addition.

5 years agoSome changes in tramp-tests
Michael Albinus [Mon, 22 Apr 2019 07:58:37 +0000 (09:58 +0200)]
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.

5 years agoMention AddressSanitizer etc. in etc/DEBUG
Paul Eggert [Mon, 22 Apr 2019 06:15:42 +0000 (23:15 -0700)]
Mention AddressSanitizer etc. in etc/DEBUG

* etc/DEBUG: Modernize for AddressSanitizer etc.
* etc/NEWS: Defer to etc/DEBUG for this.

5 years agoRemove --enable-checking=xmallocoverrun
Paul Eggert [Mon, 22 Apr 2019 04:47:10 +0000 (21:47 -0700)]
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.

5 years agoRemove --enablechecking=conslist configure option
Paul Eggert [Mon, 22 Apr 2019 04:47:10 +0000 (21:47 -0700)]
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.

5 years agoSimplify XPNTR
Paul Eggert [Mon, 22 Apr 2019 04:45:04 +0000 (21:45 -0700)]
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.

5 years agoFix drain_reloc_list alignment bug
Paul Eggert [Mon, 22 Apr 2019 04:16:03 +0000 (21:16 -0700)]
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.

5 years agoPort dump_bitset_clear to -fsanitize=undefined
Paul Eggert [Mon, 22 Apr 2019 03:36:56 +0000 (20:36 -0700)]
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.

5 years agoPort to recent gcc -fsanitize=undefined
Paul Eggert [Mon, 22 Apr 2019 03:34:03 +0000 (20:34 -0700)]
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.

5 years agoMove side-effect-free from unsafep.el to subr.el
Basil L. Contovounesios [Wed, 17 Apr 2019 16:35:12 +0000 (17:35 +0100)]
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.

5 years agoFix double-free in pdumper
Paul Eggert [Sun, 21 Apr 2019 16:59:13 +0000 (09:59 -0700)]
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.

5 years agoMerge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:38 +0000 (07:51 -0700)]
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...

5 years ago; Merge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:38 +0000 (07:51 -0700)]
; Merge from origin/emacs-26

The following commit was skipped:

bacdaa5 Use pkg-config to find lcms2 CFLAGS and LIBS (Bug#30346)

5 years agoMerge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:38 +0000 (07:51 -0700)]
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

5 years ago; Merge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:37 +0000 (07:51 -0700)]
; Merge from origin/emacs-26

The following commit was skipped:

45b0946 ; Bump Emacs version to 26.2.50

5 years agoMerge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:37 +0000 (07:51 -0700)]
Merge from origin/emacs-26

aae8cc3 * admin/admin.el (set-version): Add NEWS headers for a .50 ve...

5 years ago; Merge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:37 +0000 (07:51 -0700)]
; Merge from origin/emacs-26

The following commit was skipped:

f90a336 Backport doc improvement in ELisp manual

5 years agoMerge from origin/emacs-26
Glenn Morris [Sun, 21 Apr 2019 14:51:36 +0000 (07:51 -0700)]
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

5 years agoAvoid false positives and false negatives of Info-quoted face
Mauro Aranda [Mon, 8 Apr 2019 23:24:32 +0000 (20:24 -0300)]
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)

5 years agoFix markup related to quoting in Info
Eli Zaretskii [Sun, 21 Apr 2019 11:56:04 +0000 (14:56 +0300)]
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)

5 years agoMerge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Eli Zaretskii [Sun, 21 Apr 2019 11:21:52 +0000 (14:21 +0300)]
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26

5 years agoUse pkg-config to find lcms2 CFLAGS and LIBS (Bug#30346)
Noam Postavsky [Mon, 5 Feb 2018 01:43:26 +0000 (20:43 -0500)]
Use pkg-config to find lcms2 CFLAGS and LIBS (Bug#30346)

* configure.ac: Use EMACS_CHECK_MODULES fors LCMS2 rather than
AC_SEARCH_LIBS.
* src/Makefile.in: Get LCMS2_LIBS and LCMS2_CFLAGS from configure,
instead of just LIBLCMS2.

(cherry picked from commit cb3863370cbe574810f796726faa39ba0de0a429)

5 years agoPort make-fingerprint to LeakSanitizer
Paul Eggert [Sun, 21 Apr 2019 06:10:37 +0000 (23:10 -0700)]
Port make-fingerprint to LeakSanitizer

* lib-src/make-fingerprint.c (buf): Now static,
to pacify LeakSanitizer.

5 years ago* lisp/progmodes/sql.el Bug#35307
Michael R. Mauger [Sun, 21 Apr 2019 04:40:00 +0000 (00:40 -0400)]
* lisp/progmodes/sql.el  Bug#35307
(sql-product-alist): Added :prompt-cont-regexp for ms.

Looking for experience with Microsofts SQLCMD interpreter and
adjustments needed for Emacs to support it.

5 years ago* lisp/progmodes/sql.el Bug#24483
Michael R. Mauger [Sun, 21 Apr 2019 04:19:56 +0000 (00:19 -0400)]
* lisp/progmodes/sql.el  Bug#24483
(sql-interactive-remove-continuation-prompt): Properly protect `sql-prompt-cont-regexp'.
(sql-interactive-mode): Same.

5 years ago * lisp/progmodes.sql.el
Michael R. Mauger [Sun, 21 Apr 2019 00:13:56 +0000 (20:13 -0400)]
 * lisp/progmodes.sql.el
(sql-product-alist): Corrected :terminator defns.
(sql-debug-send): New variable.
(sql-send-string): Use it and correct buffer context.
(sql-send-magic-terminator): Use `sql-input-sender'.
(sql-placeholders-filter): Bug#11481 Don't recursively replace placeholders
* test/lisp/progmodes/sql-tests.el
(sql-test-placeholder-filter): Test placeholder functionality.

5 years agoFix text metrics calculation in Xft support for lwlib
YAMAMOTO Mitsuharu [Sun, 21 Apr 2019 02:39:06 +0000 (11:39 +0900)]
Fix text metrics calculation in Xft support for lwlib

* lwlib/lwlib-Xaw.c (get_text_width_and_height) [HAVE_XFT]:
* lwlib/xlwmenu.c (string_width) [HAVE_XFT]: Use xOff member instead of width.

5 years ago* src/configure.ac: Check for GTK 2 features only on GTK 2
Alexander Gramiak [Sun, 21 Apr 2019 02:16:20 +0000 (20:16 -0600)]
* src/configure.ac: Check for GTK 2 features only on GTK 2

5 years ago* lwlib/lwlib-Xaw.c (draw_text) [HAVE_XFT]: Fix memory leak.
YAMAMOTO Mitsuharu [Sun, 21 Apr 2019 00:53:39 +0000 (09:53 +0900)]
* lwlib/lwlib-Xaw.c (draw_text) [HAVE_XFT]: Fix memory leak.

5 years agoSupport amending the last commit using VC-Hg
Dmitry Gutov [Sat, 20 Apr 2019 21:39:36 +0000 (00:39 +0300)]
Support amending the last commit using VC-Hg

* lisp/vc/log-edit.el (log-edit--toggle-amend): Extract from
vc-git-log-edit-toggle-amend (bug#34944).

* lisp/vc/vc-hg.el (vc-hg-log-edit-toggle-amend): New function.
Use the aforementioned.
(vc-hg-log-edit-mode-map): New variable.
(vc-hg-log-edit-mode): New major mode.

5 years agoMark different-diagnostic-types as failed on emba.
Michael Albinus [Sat, 20 Apr 2019 19:16:05 +0000 (21:16 +0200)]
Mark different-diagnostic-types as failed on emba.

* test/lisp/progmodes/flymake-tests.el (different-diagnostic-types):
Expect also failure on emba.gnu.org.

5 years agoAdd a package: line to c-submit-bug-report.
Glenn Morris [Sat, 20 Apr 2019 18:38:47 +0000 (11:38 -0700)]
Add a package: line to c-submit-bug-report.

* lisp/progmodes/cc-mode.el (c-submit-bug-report):
Add a Package: line for mail clients that do not support X- headers.

5 years ago; Remove empty NEWS sections
Glenn Morris [Sat, 20 Apr 2019 17:06:26 +0000 (10:06 -0700)]
; Remove empty NEWS sections

5 years ago; Add NEWS sections for 26.3
Glenn Morris [Sat, 20 Apr 2019 17:04:18 +0000 (10:04 -0700)]
; Add NEWS sections for 26.3

5 years ago; Bump Emacs version to 26.2.50
Glenn Morris [Sat, 20 Apr 2019 17:03:40 +0000 (10:03 -0700)]
; Bump Emacs version to 26.2.50

5 years ago* admin/admin.el (set-version): Add NEWS headers for a .50 version.
Glenn Morris [Sat, 20 Apr 2019 17:02:58 +0000 (10:02 -0700)]
* admin/admin.el (set-version): Add NEWS headers for a .50 version.

5 years agoImprove XDG_RUNTIME_DIR diagnostic
Paul Eggert [Sat, 20 Apr 2019 16:31:47 +0000 (09:31 -0700)]
Improve XDG_RUNTIME_DIR diagnostic

* lib-src/emacsclient.c (set_local_socket):
If there appears to be an XDG runtime directory for the user
but XDG_RUNTIME_DIR is unset, suggest setting it while warning
about potential security issues (Bug#35300).

5 years agoFix Pike Mode's autodoc doc comments style's continued lines.
Alan Mackenzie [Sat, 20 Apr 2019 11:30:55 +0000 (11:30 +0000)]
Fix Pike Mode's autodoc doc comments style's continued lines.

* lisp/progmodes/cc-engine.el (c-forward-sws, c-backward-sws): Recognize
matches of c-doc-line-join-re as syntactic whitespace.
(c-find-decl-prefix-search): Recognize and move over matches of
c-doc-line-join-re as whitespace.
(c-find-decl-spots): Before moving backward a char, check (bobp).  Before
moving forward over a comment, check it isn't possibly a "bright" comment.

* lisp/progmodes/cc-fonts.el (c-get-doc-comment-style): New function,
extracted from c-compose-keywords-list.
(c-compose-keywords-list): Call the above new function.
(pike-font-lock-keywords, pike-font-lock-keywords-2)
(pike-font-lock-keywords-3): Call c-set-doc-comment-res.
(c-doc-line-join-re, c-doc-bright-comment-start-re, c-doc-line-join-end-ch):
New variables.
(c-set-doc-comment-re-element, c-set-doc-comment-char-list): New macros.
(c-set-doc-comment-res): New function.
(c-font-lock-doc-comments): For consistency and repeatability, in a sequence
of C++ style doc comments, don't fontify the region between BOL and the
comment marker.
(autodoc-line-join-re, autodoc-bright-comment-start-re)
(autodoc-line-join-end-ch): New variables.

* lisp/progmodes/cc-mode.el (c-doc-fl-decl-start, c-doc-fl-decl-end): New
functions.
(c-change-expand-fl-region, c-context-expand-fl-region): Call the above two
new functions for extra possibilities for the start and end of a construct.

* doc/misc/cc-mode.texi (Doc Comments): Add a sentence drawing attention to
the possibility of fontifying constructs within a doc comment.

5 years agoBackport doc improvement in ELisp manual
Eli Zaretskii [Sat, 20 Apr 2019 07:21:02 +0000 (10:21 +0300)]
Backport doc improvement in ELisp manual

* doc/lispref/processes.texi (Accepting Output): Backport:
document how do avoid race conditions while waiting for all of
the process's output to arrive.

5 years ago* lisp/emacs-lisp/smie.el (smie-indent-comment-continue): Single-char case.
Stefan Monnier [Sat, 20 Apr 2019 03:50:58 +0000 (23:50 -0400)]
* lisp/emacs-lisp/smie.el (smie-indent-comment-continue): Single-char case.

Make it so the comment-continue is aligned with the comment-start when
comment-start is a single-char.

5 years ago* src/ftcrfont.c (ftcrfont_shape): Fix last change.
YAMAMOTO Mitsuharu [Sat, 20 Apr 2019 03:50:32 +0000 (12:50 +0900)]
* src/ftcrfont.c (ftcrfont_shape): Fix last change.

5 years agoUse bitmap strikes as fallbacks for ftcr font backend
YAMAMOTO Mitsuharu [Sat, 20 Apr 2019 03:43:45 +0000 (12:43 +0900)]
Use bitmap strikes as fallbacks for ftcr font backend

* src/ftfont.h (struct font_info): New member bitmap_strike_index.
* src/ftfont.c (ftfont_open2): Try bitmap strikes as fallbacks.
(ftfont_open): Discard bitmap strikes.
* src/ftcrfont.c (ftcrfont_open): Recalculate metrics for bitmap strikes.
(ftcrfont_get_bitmap, ftcrfont_anchor_point, ftcrfont_shape): New functions.
(struct font_driver): Use them.

5 years ago* lisp/emacs-lisp/radix-tree.el (pcase-defmacro): Improve docstring
Stefan Monnier [Sat, 20 Apr 2019 03:31:59 +0000 (23:31 -0400)]
* lisp/emacs-lisp/radix-tree.el (pcase-defmacro): Improve docstring

5 years ago* lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias): Tweak doc
Stefan Monnier [Sat, 20 Apr 2019 03:29:33 +0000 (23:29 -0400)]
* lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias): Tweak doc

5 years ago* lisp/calendar/time-date.el (date-to-time): 'signal' only takes 2 args
Stefan Monnier [Sat, 20 Apr 2019 03:28:07 +0000 (23:28 -0400)]
* lisp/calendar/time-date.el (date-to-time): 'signal' only takes 2 args

5 years ago* lisp/calendar/parse-time.el (parse-time-string): Use functionp and setf
Stefan Monnier [Sat, 20 Apr 2019 03:25:04 +0000 (23:25 -0400)]
* lisp/calendar/parse-time.el (parse-time-string): Use functionp and setf

5 years agoFix GC_CHECK_STRING_BYTES false alarm with pdumper
Paul Eggert [Sat, 20 Apr 2019 00:35:39 +0000 (17:35 -0700)]
Fix GC_CHECK_STRING_BYTES false alarm with pdumper

* src/alloc.c (string_bytes): Don’t abort on strings
taken from the dumped file.

5 years agoFix another hash false alarm
Paul Eggert [Sat, 20 Apr 2019 00:35:39 +0000 (17:35 -0700)]
Fix another hash false alarm

* src/pdumper.c (dump_vectorlike): Fix hash.

5 years ago; * src/alloc.c (xrealloc): Fix typo.
Philipp Stephani [Fri, 19 Apr 2019 23:49:41 +0000 (01:49 +0200)]
; * src/alloc.c (xrealloc): Fix typo.

5 years ago* src/emacs-module.c (value_storage_contains_p): Fix typo.
Paul Eggert [Fri, 19 Apr 2019 21:41:37 +0000 (14:41 -0700)]
* src/emacs-module.c (value_storage_contains_p): Fix typo.

5 years agoRemove some ineffective #ifdefs.
Philipp Stephani [Fri, 19 Apr 2019 21:17:19 +0000 (23:17 +0200)]
Remove some ineffective #ifdefs.

Since DEFSYM doesn't by itself do anything and make-docfile ignores
preprocessor statements, conditional compilation of DEFSYMs is
ineffective.

* src/data.c (syms_of_data): Remove ineffective #ifdefs.

5 years ago; * src/alloc.c (HAVE_MODULES): remove unused constant
Philipp Stephani [Fri, 19 Apr 2019 21:11:14 +0000 (23:11 +0200)]
; * src/alloc.c (HAVE_MODULES): remove unused constant

5 years agoRemove some #ifdefs for user pointers.
Philipp Stephani [Fri, 19 Apr 2019 21:07:58 +0000 (23:07 +0200)]
Remove some #ifdefs for user pointers.

Even if Emacs is compiled without module support, we don't have to
comment out every bit of user pointer support.  Defining the basic
structures and functions and detecting user pointers in switch
statements is harmless, and we're already doing the same for module
functions.  Removing these #ifdefs makes the code a bit easier to
read.

* src/lisp.h (PVEC_USER_PTR, struct Lisp_User_Ptr, USER_PTRP)
(XUSER_PTR): Define unconditionally.

* src/data.c (Ftype_of):
* src/alloc.c (cleanup_vector):
* src/print.c (print_vectorlike):
* src/pdumper.c (dump_vectorlike): Remove #ifdef for user pointers.

5 years agoRemove special-casing of tagged pointers.
Philipp Stephani [Fri, 19 Apr 2019 20:51:16 +0000 (22:51 +0200)]
Remove special-casing of tagged pointers.

This partially reverts commit
09b2b8a5ce5b542856f93b645db51eb11cf9855a.

* src/alloc.c (mark_maybe_pointer): Remove special-casing of tagged
pointers.  After commit 09d746dad36e4780d379f975a84b1b076da78c50,
modules no longer rely on tagged pointers.

5 years agoRefactoring: Reduce code duplication
Philipp Stephani [Sat, 19 Jan 2019 22:40:35 +0000 (23:40 +0100)]
Refactoring: Reduce code duplication

* src/emacs-module.c (value_storage_contains_p): New function.
(module_free_global_ref, value_to_lisp): Use it.

5 years agoRemove subsumed regexp branches
Mattias Engdegård [Fri, 19 Apr 2019 20:24:35 +0000 (22:24 +0200)]
Remove subsumed regexp branches

* lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings)
(c-after-change-mark-abnormal-strings): Remove `\r' subsumed by `.'.

5 years agoFix Fload dangling pointer
Paul Eggert [Fri, 19 Apr 2019 19:55:18 +0000 (12:55 -0700)]
Fix Fload dangling pointer

* src/lread.c (Fload): Expand decl’s lifetime to match its use.
Bug found by gcc -fsanitize=address.

5 years agoFix comment and tweak eval_sub
Paul Eggert [Fri, 19 Apr 2019 19:52:57 +0000 (12:52 -0700)]
Fix comment and tweak eval_sub

* src/eval.c (eval_sub): Check whether Fassq returns Qnil,
not whether it returns a cons, as NILP is faster than CONSP
nowadays.  Remove incorrect comment “only original_fun and
original_args have values that will be used below”; instead,
move declarations around so that the set of variables with
useful values is obvious.

5 years agoFix dump_map_file on unusual platforms
Paul Eggert [Fri, 19 Apr 2019 19:38:45 +0000 (12:38 -0700)]
Fix dump_map_file on unusual platforms

* src/pdumper.c (dump_map_file): Fix recently-introduced typo
on platforms that support neither POSIX nor MS-Windows VM.

5 years agoDocument insert-image-file's return value (Bug#32978)
Noam Postavsky [Thu, 18 Apr 2019 00:22:09 +0000 (20:22 -0400)]
Document insert-image-file's return value (Bug#32978)

* lisp/image-file.el (insert-image-file): Document return value.

5 years agoAutoload cua-toggle-rectangle-mark (Bug#34947)
Braun Gábor [Fri, 22 Mar 2019 15:11:44 +0000 (16:11 +0100)]
Autoload cua-toggle-rectangle-mark (Bug#34947)

* lisp/emulation/cua-base.el (cua-toggle-rectangle-mark): Autoload it.
Library cua-base.el binds cua-toggle-rectangle-mark to a key in the
:set function in (defcustom cua-rectangle-mark-key ...), so it should
ensure that the command is defined.

Copyright-paperwork-exempt: yes

5 years agoTell xclip not to expect job-control under eshell (Bug#35257)
Noam Postavsky [Tue, 16 Apr 2019 00:38:15 +0000 (20:38 -0400)]
Tell xclip not to expect job-control under eshell (Bug#35257)

* lisp/eshell/esh-proc.el (eshell-needs-pipe): Add "xclip" and other
programs that xclip.el (in GNU ELPA) calls with
`process-connection-type' bound to nil.

5 years agoMinor lread.c tweaks
Paul Eggert [Fri, 19 Apr 2019 19:08:40 +0000 (12:08 -0700)]
Minor lread.c tweaks

* src/lread.c (load_warn_unescaped_character_literals):
Use AUTO_STRING to help the GC.
(Fload): Use bool for boolean.

5 years agoClear gnus-group-list when the newsrc-hashtb is recreated
Eric Abrahamsen [Fri, 19 Apr 2019 17:23:19 +0000 (10:23 -0700)]
Clear gnus-group-list when the newsrc-hashtb is recreated

* lisp/gnus/gnus-start.el (gnus-make-hashtable-from-newsrc-alist):
  This routine also happens when re-sorting groups; make sure we're
  clearing the group list.

5 years ago; * src/emacs.c: Fix typo in comment (Bug#35320).
Noam Postavsky [Fri, 19 Apr 2019 18:06:08 +0000 (14:06 -0400)]
; * src/emacs.c: Fix typo in comment (Bug#35320).

5 years agoMake warning about unescaped character literals more helpful.
Philipp Stephani [Sat, 2 Jun 2018 09:59:02 +0000 (11:59 +0200)]
Make warning about unescaped character literals more helpful.

See Bug#31676.

* lisp/emacs-lisp/byte-run.el
(byte-run--unescaped-character-literals-warning): New defun.

* src/lread.c (load_warn_unescaped_character_literals): Use new defun.
(syms_of_lread): Define symbol for new defun.

* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Use new
defun.

* test/src/lread-tests.el (lread-tests--unescaped-char-literals):
test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--unescaped-char-literals): Adapt unit tests.

5 years agoRefactoring: simplify definition of some internal variables.
Philipp Stephani [Fri, 19 Apr 2019 16:38:19 +0000 (18:38 +0200)]
Refactoring: simplify definition of some internal variables.

In some cases, we never specbind internal objects, so they don't have
to be symbols.  Rather than using DEFSYM/DEFVAR and then uninterning
the symbols, use plain static variables.  Call staticpro for all of
them, to protect them from the garbage collector.

* src/eval.c (syms_of_eval): Use a static variable for
Qcatch_all_memory_full.

* src/emacs-module.c (syms_of_module): Use static variables for
Vmodule_refs_hash, Vmodule_runtimes, and Vmodule_environments.