Andrea Corallo [Sat, 25 Apr 2020 17:10:06 +0000 (18:10 +0100)]
* src/comp.h (load_comp_unit): Fix declaration style.
Andrea Corallo [Sat, 25 Apr 2020 16:33:58 +0000 (17:33 +0100)]
* Rename TEXT_OPTIM_QLY into TEXT_OPTIM_QLY_SYM.
* src/comp.c (TEXT_OPTIM_QLY): Rename into TEXT_OPTIM_QLY_SYM.
(emit_ctxt_code): Update TEXT_OPTIM_QLY naming.
(load_comp_unit): Likewise.
Andrea Corallo [Sat, 25 Apr 2020 15:50:50 +0000 (16:50 +0100)]
* src/comp.c (declare_function): fix missing NILP.
Andrea Corallo [Sat, 25 Apr 2020 15:13:03 +0000 (16:13 +0100)]
Store function documentations in a hash table.
* src/pdumper.c (dump_subr): Update Lisp_Subr hash.
(dump_subr): Update for new compilation unit layout.
(dump_vectorlike): Update pvec_type hash.
* src/lisp.h (struct Lisp_Subr): Remove 'native_doc' index.
(DEFUN): Update macro for new compilation unit
layout.
* src/doc.c (Fdocumentation): Update for new compilation unit
layout.
* src/comp.h (struct Lisp_Native_Comp_Unit):
Add 'data_fdoc_h' field.
* src/comp.c (TEXT_FDOC_SYM): New macro.
(emit_ctxt_code): Emit function documentations.
(load_comp_unit): Load function documentation.
(Fcomp__register_subr): Rename parameter.
(Fcomp__register_subr): Update for new compilation unit
layout.
* src/alloc.c (mark_object): Update for new compilation unit
layout.
(syms_of_alloc): Likewise.
* lisp/emacs-lisp/comp.el (comp-ctxt): Add doc-index-h slot.
(comp-emit-for-top-level): Emit doc index as 'comp--register-subr'
doc parameter.
Andrea Corallo [Sat, 25 Apr 2020 14:43:10 +0000 (15:43 +0100)]
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Use `clrhash'.
Andrea Corallo [Sat, 25 Apr 2020 14:13:18 +0000 (15:13 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Sat, 25 Apr 2020 13:45:21 +0000 (14:45 +0100)]
Fix deferred-compilation for double compilation (bug#40838).
* lisp/emacs-lisp/comp.el (native-compile-async): Prevent double
compilation (bug#40838).
Andrea Corallo [Sat, 25 Apr 2020 13:39:11 +0000 (14:39 +0100)]
Store ongoing compilations processes as hash table.
* lisp/emacs-lisp/comp.el (comp-async-processes): Rename as
`comp-async-compilations'.
(comp-async-runnings): Make use as `comp-async-compilations'.
(comp-run-async-workers): Likewise.
Eli Zaretskii [Sat, 25 Apr 2020 13:37:46 +0000 (16:37 +0300)]
Fix GDI+ image loading by file name
Without a call to image_find_image, we can get a file name that
is relative to data-directory/images/, or a file name that
starts with "~/", in which case w32_load_image would fail.
* src/image.c (native_image_load): Call image_find_image_file to
resolve and encode the image file name.
* src/w32image.c (w32_load_image): No need to encode the file
name, as it's already encoded by native_image_load.
Igor Saprykin [Thu, 23 Apr 2020 20:00:26 +0000 (13:00 -0700)]
Remove unused variable from ftfont.c
* src/ftfont.c (ftfont_lookup_cache): Eliminate unnecessary variable.
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 25 Apr 2020 09:11:57 +0000 (12:11 +0300)]
Fix two fringe bitmaps
* src/fringe.c (question_mark_bits, exclamation_mark_bits): Fix
the numerical values. (Bug#40805)
Simen Heggestøyl [Sat, 25 Apr 2020 07:10:56 +0000 (09:10 +0200)]
Use lexical-binding in po.el and add tests
* lisp/textmodes/po.el: Use lexical-binding.
* test/lisp/textmodes/po-tests.el: New file with tests for po.el.
Stefan Kangas [Sat, 25 Apr 2020 05:58:26 +0000 (07:58 +0200)]
Use lexical-binding in forms.el example files
* etc/forms/forms-d2.el:
* etc/forms/forms-pass.el: Use lexical-binding.
Stefan Kangas [Fri, 24 Apr 2020 22:39:31 +0000 (00:39 +0200)]
; * test/lisp/international/mule-util-tests.el: Fix typos.
Stefan Kangas [Fri, 24 Apr 2020 18:38:47 +0000 (20:38 +0200)]
Use lexical-binding for international tests
* test/lisp/international/mule-util-tests.el:
* test/lisp/international/ccl-tests.el: Use lexical-binding.
Stefan Kangas [Fri, 24 Apr 2020 17:55:47 +0000 (19:55 +0200)]
Use lexical-binding for all net tests
* test/lisp/net/dbus-tests.el:
* test/lisp/net/gnutls-tests.el:
* test/lisp/net/newsticker-tests.el:
* test/lisp/net/puny-tests.el:
* test/lisp/net/rfc2104-tests.el: Use lexical-binding.
Stefan Kangas [Fri, 24 Apr 2020 16:49:28 +0000 (18:49 +0200)]
Use lexical-binding for textmodes tests
* test/lisp/textmodes/mhtml-mode-tests.el:
* test/lisp/textmodes/sgml-mode-tests.el: Use lexical-binding.
Stefan Kangas [Fri, 24 Apr 2020 16:38:11 +0000 (18:38 +0200)]
Use lexical-binding in most url tests
* test/lisp/url/url-auth-tests.el:
* test/lisp/url/url-expand-tests.el:
* test/lisp/url/url-parse-tests.el:
* test/lisp/url/url-tramp-tests.el:
* test/lisp/url/url-util-tests.el: Use lexical-binding.
Stefan Kangas [Fri, 24 Apr 2020 13:28:22 +0000 (15:28 +0200)]
Use lexical-binding in most src tests
* test/src/charset-tests.el:
* test/src/chartab-tests.el:
* test/src/cmds-tests.el:
* test/src/coding-tests.el (top-level)
(generate-ascii-file, generate-mostly-nonascii-file):
* test/src/doc-tests.el:
* test/src/floatfns-tests.el:
* test/src/font-tests.el:
* test/src/keymap-tests.el:
* test/src/process-tests.el (top-level)
(process-test-sentinel-wait-function-working-p)
(process-test-stderr-buffer, process-test-stderr-filter):
* test/src/textprop-tests.el:
* test/src/thread-tests.el:
* test/src/timefns-tests.el:
* test/src/undo-tests.el:
* test/src/xml-tests.el: Use lexical-binding.
Alan Mackenzie [Fri, 24 Apr 2020 15:51:43 +0000 (15:51 +0000)]
Fix bug #40766, an error in edebug spec handling
Also remove some debris.
* lisp/emacs-lisp/edebug.el (edebug-spec): Move the entry for edebug-spec-list
to before that for vector in the &or form. This assures that in a dotted list
of vectors, that list gets handled correctly by edebug-spec-list rather than
wrongly by (vector ...).
(def-edebug-spec &key): Remove, since it is ill formed and superfluous.
Andrea Corallo [Fri, 24 Apr 2020 15:51:00 +0000 (16:51 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Fri, 24 Apr 2020 18:24:07 +0000 (19:24 +0100)]
* lisp/subr.el (called-interactively-p): Fix for native code bug#40694.
Andrea Corallo [Fri, 24 Apr 2020 18:23:34 +0000 (19:23 +0100)]
* lisp/subr.el (subr-primitive-p): New inline function.
Andrea Corallo [Fri, 24 Apr 2020 18:02:55 +0000 (19:02 +0100)]
* lisp/emacs-lisp/comp.el (comp-run-async-workers): Fix non late load.
Stefan Kangas [Mon, 20 Apr 2020 07:27:17 +0000 (09:27 +0200)]
* etc/edt-user.el: Use lexical-binding.
Stefan Kangas [Mon, 20 Apr 2020 07:24:20 +0000 (09:24 +0200)]
* lisp/kermit.el: Use lexical-binding.
Michael Albinus [Fri, 24 Apr 2020 09:25:50 +0000 (11:25 +0200)]
* test/lisp/net/tramp-tests.el
(tramp-test32-shell-command-dont-erase-buffer): Tag it :unstable.
Eli Zaretskii [Thu, 23 Apr 2020 15:40:42 +0000 (18:40 +0300)]
Fix display of composed text with :box face attribute
* src/xdisp.c (get_next_display_element): For a composition on a
display or overlay string, set the end_of_box_run_p flag if the
string ends at the last character included in the composition.
(fill_gstring_glyph_string): Fix the way the width of a gstring
glyph string is calculated: use the values calculated in
gui_produce_glyphs, since the latter adjusts the width due to the
face's ':box' attribute.
* src/xterm.c (x_draw_glyph_string_box):
* src/w32term.c (w32_draw_glyph_string_box):
* src/nsterm.m (ns_dumpglyphs_box_or_relief): Support automatic
compositions, which have the right_box_line_p flag set on the last
glyph produced from the composition. (Bug#40687)
* src/w32term.c (w32_compute_glyph_string_overhangs): Update to be
consistent with xterm.c in its support of automatic composition
glyph strings.
* src/dispextern.h (enum glyph_type): More accurate commentary.
* src/.gdbinit (pgx): Display slice.img members only for image
glyphs.
Andrea Corallo [Thu, 23 Apr 2020 07:54:46 +0000 (08:54 +0100)]
* lisp/emacs-lisp/bytecomp.el (byte-compile-refresh-preloaded): Add comp.eln
Andrea Corallo [Thu, 23 Apr 2020 07:41:15 +0000 (08:41 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Paul Eggert [Thu, 23 Apr 2020 02:00:08 +0000 (19:00 -0700)]
text-char-description minor cleanup
* src/keymap.c (push_text_char_description): Omit useless code.
(Ftext_char_description): Minor code cleanup, inspired by
seeing an incorrect comment about MAX_MULTIBYTE_LENGTH’s value.
Paul Eggert [Thu, 23 Apr 2020 01:58:45 +0000 (18:58 -0700)]
Tweak multibyte parsing loops
* src/character.c (parse_str_as_multibyte, str_as_multibyte):
Let the fast loop run a little longer, fixing what appears
to be an off-by-1 performance nit.
Michael Albinus [Wed, 22 Apr 2020 09:16:31 +0000 (11:16 +0200)]
Support old SMB1 protocol in Tramp
* doc/misc/tramp.texi (Frequently Asked Questions):
Describe `tramp-smb-options'.
* lisp/net/tramp-smb.el (tramp-smb-conf): Fix docstring.
(tramp-smb-options): New defcustom.
(tramp-smb-handle-copy-directory, tramp-smb-handle-file-acl)
(tramp-smb-handle-set-file-acl, tramp-smb-maybe-open-connection):
Use it.
Michael Albinus [Tue, 21 Apr 2020 11:33:24 +0000 (13:33 +0200)]
Fix recently introduced error in `tramp-sh-handle-vc-registered'
* lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered): Improve test for
`vc-handled-backends'. (Bug#40670)
Paul Eggert [Tue, 21 Apr 2020 05:26:30 +0000 (22:26 -0700)]
Fix string-to-multibyte overlong sequence bug
* src/character.h (MULTIBYTE_LENGTH, MULTIBYTE_LENGTH_NO_CHECK):
Remove, replacing with ...
(multibyte_length): ... this new function. All callers changed.
The new function rejects overlong multibyte forms.
* test/src/buffer-tests.el (buffer-multibyte-overlong-sequences):
New test.
Juri Linkov [Mon, 20 Apr 2020 23:48:22 +0000 (02:48 +0300)]
* lisp/hi-lock.el (hi-lock--regexps-at-point): Use proper-list-p, not consp.
Eric Abrahamsen [Mon, 20 Apr 2020 18:25:40 +0000 (11:25 -0700)]
Remove unnecessary lambda quoting
* lisp/gnus/nntp.el (nntp-open-connection): Buffer has lexical-binding
turned on.
Eli Zaretskii [Mon, 20 Apr 2020 16:29:58 +0000 (19:29 +0300)]
Remove workaround from w32image.c
* src/w32image.c (w32_load_image): Remove a workaround for a bug
that is not needed anymore. This error was happening because
GDI+ functions were called as CDECL, not as STDCALL.
Glenn Morris [Mon, 20 Apr 2020 14:50:19 +0000 (07:50 -0700)]
Merge from origin/emacs-27
05089a4d65 (origin/emacs-27) Tweak wording re constant variables
a1040861f1 Tweak setcar-related wording
751510f865 * lisp/image-mode.el: Add prefix key 's' and reduce depend...
9261a219ec * doc/emacs/windows.texi (Window Convenience): Decribe mor...
e1d42da0d6 Fix mutability glitches reported by Drew Adams
5805df74f5 Improve mutability doc
dca35b31d0 Improve mutability documentation
81e7d7f111 Document that quoting yields constants
5734339f40 * doc/lispref/keymaps.texi (Extended Menu Items, Easy Menu...
14a570afae Remove #' and function quoting from lambda forms in manual
d5ec18c66b * src/regex-emacs.c (re_match_2_internal): Rework comment ...
4df8a61117 Add new node "Image Mode" to Emacs Manual.
d7d5ee6c57 ; Fix a typo in cmdargs.texi (bug#40701)
5e9db48fbe * doc/lispref/display.texi (Customizing Bitmaps): Fix typo.
eebfb72c90 Document constant vs mutable objects better
6c187ed6b0 Improve documentation of 'sort-lines'
52288f4b66 Mention 'spam-stat-process-directory-age' in the documenta...
067b070598 ; Fix some typos and doc issues (bug#40695)
# Conflicts:
# etc/NEWS
Stefan Kangas [Mon, 20 Apr 2020 07:08:09 +0000 (09:08 +0200)]
* lisp/cdl.el: Use lexical binding.
Stefan Kangas [Mon, 20 Apr 2020 05:00:06 +0000 (07:00 +0200)]
Silence byte-compiler after my previous commit
* lisp/autoarg.el (autoarg-kp-digits): Silence byte-compiler.
Paul Eggert [Mon, 20 Apr 2020 02:52:53 +0000 (19:52 -0700)]
Tweak wording re constant variables
* doc/lispref/objects.texi (Constants and Mutability): Tweak.
Problem reported by Michael Heerdegen (Bug#40693#44).
Paul Eggert [Sun, 19 Apr 2020 23:46:47 +0000 (16:46 -0700)]
Tweak setcar-related wording
* doc/lispref/eval.texi (Self-Evaluating Forms):
Change “primitives” to “operations”.
Problem reported by Štěpán Němec in:
https://lists.gnu.org/r/emacs-devel/2020-04/msg01146.html
Juri Linkov [Sun, 19 Apr 2020 23:07:43 +0000 (02:07 +0300)]
* lisp/image-mode.el: Add prefix key 's' and reduce dependency on ImageMagick.
* lisp/image-mode.el (image-mode-map): Regroup existing keybindings and
add new ones with the prefix key 's'.
Remove condition ":visible (eq image-type 'imagemagick)" from menu.
(image-toggle-display-image): Don't rotate again after user rotated manually.
(image-transform-check-size): Remove check for imagemagick.
(image-transform-properties, image-transform-set-scale)
(image-transform-fit-to-height, image-transform-fit-to-width)
(image-transform-set-rotation, image-transform-reset):
Remove mentions of ImageMagick from docstrings since these commands
now work without ImageMagick.
Juri Linkov [Sun, 19 Apr 2020 22:57:32 +0000 (01:57 +0300)]
* doc/emacs/windows.texi (Window Convenience): Decribe more windmove features.
* doc/emacs/windows.texi (Window Convenience): Add descriptions of
windmove-display-default-keybindings,
windmove-delete-default-keybindings,
windmove-swap-states-in-direction.
* etc/NEWS: Regroup to move some parts closer to related sections.
Paul Eggert [Sun, 19 Apr 2020 22:09:02 +0000 (15:09 -0700)]
Fix mutability glitches reported by Drew Adams
See Bug#40693#32.
* doc/lispref/eval.texi (Self-Evaluating Forms, Backquote):
Say that these yield constant conses, vectors and strings,
not constant symbols.
* doc/lispref/objects.texi (Constants and Mutability): Say that an
attempt to modify a constant variable signals an error, instead of
saying that it has undefined behavior.
Paul Eggert [Sun, 19 Apr 2020 20:22:10 +0000 (13:22 -0700)]
Improve mutability doc
See Eli Zaretskii’s suggestions (Bug#40671#33).
* doc/lispref/lists.texi (Setcar, Setcdr, Rearrangement):
* doc/lispref/sequences.texi (Sequence Functions)
(Array Functions):
Add commentary to examples.
* doc/lispref/lists.texi (Sets And Lists):
Revert change to delq example.
Paul Eggert [Sun, 19 Apr 2020 19:00:49 +0000 (12:00 -0700)]
Improve mutability documentation
This change was inspired by comments from Štěpán Němec in:
https://lists.gnu.org/r/emacs-devel/2020-04/msg01063.html
* doc/lispref/objects.texi (Lisp Data Types): Mention mutability.
(Constants and mutability): New section.
* doc/lispintro/emacs-lisp-intro.texi (Lists diagrammed)
(Indent Tabs Mode): Improve wording.
* doc/lispref/eval.texi (Self-Evaluating Forms):
Say that they return constants.
* doc/lispref/lists.texi (Sets And Lists):
Fix memql mistake/confusion that I recently introduced.
Paul Eggert [Sun, 19 Apr 2020 16:37:51 +0000 (09:37 -0700)]
Document that quoting yields constants
* doc/lispref/eval.texi (Quoting, Backquote):
Mention that quoted expressions yield a constant (Bug#40693).
Eli Zaretskii [Sun, 19 Apr 2020 18:09:20 +0000 (21:09 +0300)]
Rework how GDI+ functions are loaded dynamically in w32image.c
* src/w32image.c: Define correct WINGDIPAPI typedefs for GDI+
functions. We cannot use DEF_DLL_FN, since that is for functions
with C calling conventions, whereas GDI+ functions are __stdcall.
(gdiplus_init): Load functions from DLL manually, not via
LOAD_DLL_FN, as the latter is for __cdecl functions.
(w32_frame_delay): Initialize delay with a negative value, as zero
is a valid delay.
Eli Zaretskii [Sun, 19 Apr 2020 16:38:53 +0000 (19:38 +0300)]
Don't use Gnulib's explicit_bzero on MS-Windows
This is a preventive change, since Gnulib was recently changed
its explicit_bzero to call SecureZeroMemory on MS-Windows,
disregarding systems older than XP, which didn't have it.
* src/w32.c (explicit_bzero): New function.
* nt/mingw-cfg.site (ac_cv_func_explicit_bzero): Avoid using the
Gnulib replacement for explicit_bzero.
* nt/inc/ms-w32.h (explicit_bzero): Add prototype.
Stefan Monnier [Sun, 19 Apr 2020 15:19:03 +0000 (11:19 -0400)]
* doc/lispref/keymaps.texi (Extended Menu Items, Easy Menu) <:key-sequence>:
Clarify the documentation further
Mattias Engdegård [Sun, 19 Apr 2020 10:40:43 +0000 (12:40 +0200)]
Remove #' and function quoting from lambda forms in manual
* doc/lispref/abbrevs.texi (Abbrev Expansion):
* doc/lispref/backups.texi (Reverting):
* doc/lispref/functions.texi (Mapping Functions):
* doc/lispref/help.texi (Accessing Documentation):
* doc/lispref/sequences.texi (Char-Tables):
* doc/lispref/syntax.texi (Categories):
* doc/lispref/text.texi (Sorting):
Remove function quoting from lambda in examples where it still occurs,
since examples should follow our best style and be consistent.
Simen Heggestøyl [Sun, 19 Apr 2020 06:03:21 +0000 (08:03 +0200)]
Use lexical-binding in elide-head.el and add tests
* lisp/elide-head.el: Use lexical-binding.
(elide-head-headers-to-hide): Remove redundant :group arg.
(elide-head-overlay): Use `defvar-local'.
(elide-head-show): Fix docstring.
* test/lisp/elide-head-tests.el: New file with tests for
elide-head.el.
Stefan Monnier [Sun, 19 Apr 2020 03:01:43 +0000 (23:01 -0400)]
* src/regex-emacs.c (re_match_2_internal): Rework comment in last change
Explain why we don't need to worry about Lisp modifying the buffer.
* src/syntax.c (parse_sexp_propertize): Fix name in error message.
Stefan Kangas [Sun, 19 Apr 2020 00:32:36 +0000 (02:32 +0200)]
* lisp/autoarg.el: Use lexical binding.
Juri Linkov [Sat, 18 Apr 2020 23:43:06 +0000 (02:43 +0300)]
Add new node "Image Mode" to Emacs Manual.
* doc/emacs/dired.texi (Image-Dired): Add xref to "Image Mode".
* doc/emacs/emacs.texi (Top): Add new node "Image Mode" to menu.
* doc/emacs/files.texi (Files): Add new node "Image Mode" to menu.
(File Conveniences): Split part of node to new node "Image Mode".
* doc/emacs/frames.texi (Mouse Commands): Add xref to "Image Mode".
* doc/emacs/misc.texi (Embedded WebKit Widgets): Rename xref from
"File Conveniences" to "Image Mode".
Štěpán Němec [Sat, 18 Apr 2020 21:28:40 +0000 (23:28 +0200)]
; Fix a typo in cmdargs.texi (bug#40701)
Paul Eggert [Sat, 18 Apr 2020 19:59:50 +0000 (12:59 -0700)]
* doc/lispref/display.texi (Customizing Bitmaps): Fix typo.
Paul Eggert [Sat, 18 Apr 2020 19:59:17 +0000 (12:59 -0700)]
Document constant vs mutable objects better
This patch builds on a suggested patch by Mattias Engdegård
and on further comments by Eli Zaretskii.
Original bug report by Kevin Vigouroux (Bug#40671).
* doc/lispintro/emacs-lisp-intro.texi (set & setq, Review)
(setcar, Lists diagrammed, Mail Aliases, Indent Tabs Mode):
setq is a special form, not a function or command.
* doc/lispintro/emacs-lisp-intro.texi (setcar):
* doc/lispref/lists.texi (Modifying Lists, Rearrangement):
* doc/lispref/sequences.texi (Sequence Functions)
(Array Functions, Vectors):
* doc/lispref/strings.texi (String Basics, Modifying Strings):
Mention mutable vs constant objects.
* doc/lispintro/emacs-lisp-intro.texi (setcar, setcdr)
(kill-new function, cons & search-fwd Review):
* doc/lispref/edebug.texi (Printing in Edebug):
* doc/lispref/keymaps.texi (Changing Key Bindings):
* doc/lispref/lists.texi (Setcar, Setcdr, Rearrangement)
(Sets And Lists, Association Lists, Plist Access):
* doc/lispref/sequences.texi (Sequence Functions)
(Array Functions):
* doc/lispref/strings.texi (Text Comparison):
Fix examples so that they do not try to change constants.
Ahmed Khanzada [Sat, 18 Apr 2020 19:15:17 +0000 (12:15 -0700)]
Fix misnamed variable breaking GNUstep
* src/nsterm.m (ns_set_offset): Use correct variable.
Simen Heggestøyl [Sat, 18 Apr 2020 16:36:49 +0000 (18:36 +0200)]
Use lexical-binding in apropos.el and add tests
* lisp/apropos.el: Use lexical-binding and remove redundant
:group args.
(apropos-words-to-regexp, apropos): Tweak docstrings.
(apropos-value-internal): Replace '(if x (progn y))' with
'(when x y)'.
(apropos-format-plist): Add docstring and replace '(if x (progn y))'
with '(when x y)'.
* test/lisp/apropos-tests.el: New file with tests for apropos.el.
Eli Zaretskii [Sat, 18 Apr 2020 16:26:30 +0000 (19:26 +0300)]
Improve documentation of 'sort-lines'
* lisp/sort.el (sort-lines): Clarify the interactive invocation.
(Bug#40697)
Štěpán Němec [Wed, 31 Jul 2019 07:51:09 +0000 (09:51 +0200)]
Mention 'spam-stat-process-directory-age' in the documentation
I was at a loss as to why my attempt to set up spam-stat seemed to
have no effect, only to find (digging in the code) that it was
ignoring most of the sample files due to this undocumented variable.
* doc/misc/gnus.texi (Creating a spam-stat dictionary): Document
the variable 'spam-stat-process-directory-age'. (bug#39780)
Štěpán Němec [Sun, 1 Mar 2020 17:50:14 +0000 (18:50 +0100)]
; Fix some typos and doc issues (bug#40695)
Glenn Morris [Sat, 18 Apr 2020 14:50:22 +0000 (07:50 -0700)]
Merge from origin/emacs-27
f3b62b6c62 (origin/emacs-27) Avoid crashes in regex-emacs.c due to GC
175c61c18b Fix "C-u M-!" when 'shell-command-dont-erase-buffer' is no...
6b297519b5 Fix cl-most-positive-float doc typo
c36c5a3ded ; lisp/ldefs-boot.el: Update.
3876a60569 Fix a typo in calculator.el
9e832ba91b * lisp/erc/erc.el: Add URL to the new ERC page on the Emac...
# Conflicts:
# etc/NEWS
Glenn Morris [Sat, 18 Apr 2020 14:50:18 +0000 (07:50 -0700)]
; Merge from origin/emacs-27
The following commit was skipped:
399c20d2e0 Bump Emacs version to 27.0.91
Glenn Morris [Sat, 18 Apr 2020 14:50:18 +0000 (07:50 -0700)]
Merge from origin/emacs-27
145a151d62 Correct Fido-mode's backspacing of directories with spaces
660b9b8cfb Default completion-flex-nospace to nil
fb5f616ae8 Improve an example in w32 FAQ
Glenn Morris [Sat, 18 Apr 2020 14:50:18 +0000 (07:50 -0700)]
; Merge from origin/emacs-27
The following commit was skipped:
0ed7177696 * lisp/htmlfontify.el (hfy-force-fontification): Fix bug#4...
Eli Zaretskii [Sat, 18 Apr 2020 13:29:33 +0000 (16:29 +0300)]
Safeguard the fix of bug#40632
* src/xdisp.c (move_it_to): Restrict the recent fix to iteration
through buffer text.
Eli Zaretskii [Sat, 18 Apr 2020 11:53:13 +0000 (14:53 +0300)]
Avoid crashes in regex-emacs.c due to GC
* src/regex-emacs.c (re_match_2_internal): Prevent GC from
invalidating C pointers to buffer text. (Bug#40661)
Eli Zaretskii [Sat, 18 Apr 2020 09:57:08 +0000 (12:57 +0300)]
Don't abort when using GDI+ for images
* src/w32image.c (decode_delay): Instead of aborting when the
type of delay value is unrecognized, return an invalid negative
value.
Juan José García-Ripoll [Sat, 18 Apr 2020 08:41:42 +0000 (10:41 +0200)]
Fix loading multi-frame TIFF images via GDI+
* src/w32image.c (w32_frame_delay): Don't try to compute frame
delay if GdipGetPropertyItemSize fails for PropertyTagFrameDelay.
(w32_load_image): Don't add 'delay' member to metadata if the
delay could not be determined.
Eli Zaretskii [Sat, 18 Apr 2020 09:01:26 +0000 (12:01 +0300)]
Fix "C-u M-!" when 'shell-command-dont-erase-buffer' is non-nil
* lisp/simple.el (shell-command-dont-erase-buffer): Clarify the
effect of the various values in the doc string.
(shell-command-save-pos-or-erase, shell-command): Don't move or
push point if the output will go to the current buffer.
(Bug#40690)
(shell-command): Mention 'shell-command-dont-erase-buffer' in the
doc string.
* test/lisp/simple-tests.el
(with-shell-command-dont-erase-buffer): Don't is shell quoting
'like this', as it doesn't work on MS-Windows; quote "like this"
instead.
(simple-tests-shell-command-dont-erase-buffer): Adapt the test to
the new modus operandi.
* doc/emacs/misc.texi (Single Shell): Document the effect of the
various values of 'shell-command-dont-erase-buffer'.
* etc/NEWS: Expand and reword the entry regarding changes in
'shell-command-dont-erase-buffer'.
Martin Rudalics [Sat, 18 Apr 2020 08:25:20 +0000 (10:25 +0200)]
Fix handling of child frames in prepare_menu_bars (Bug#40639)
* src/xdisp.c (prepare_menu_bars): Call gui_consider_frame_title
for child frames too (Bug#40639). Never try to update menu bar
of a child frame. Do not exclude child frames from updating tool
or tab bars.
Paul Eggert [Fri, 17 Apr 2020 21:09:01 +0000 (14:09 -0700)]
Port recent character.h changes to --with-wide-int
* src/fns.c (mapcar1):
* src/keymap.c (Fkey_description):
* src/syntax.c (scan_lists):
Prefer ptrdiff_t to EMACS_INT where either will do; this fixes
newly-introduced type errors on --with-wide-int platforms where
ptrdiff_t is narrower than EMACS_INT.
* src/keymap.c (Fkey_description): Rework for clarity; remove goto.
* src/syntax.c (scan_words, Fforward_comment, scan_lists)):
Fix unlikely integer overflow problems that can occur on
--with-wide-int platforms, and that were caught by the recent
character.h changes.
Paul Eggert [Fri, 17 Apr 2020 16:38:04 +0000 (09:38 -0700)]
Fix cl-most-positive-float doc typo
* doc/misc/cl.texi (Implementation Parameters):
Fix typo in documentation of cl-most-positive-float.
Paul Eggert [Fri, 17 Apr 2020 16:16:41 +0000 (09:16 -0700)]
Pacify gcc -Og x86-64
* src/editfns.c (Ftranslate_region_internal): Add UNINIT
to pacify gcc -Og x86-64 (GCC 9.3.1
20200317 (Red Hat 9.3.1-1)).
Paul Eggert [Fri, 17 Apr 2020 14:57:25 +0000 (07:57 -0700)]
Prefer more inline functions in character.h
* src/buffer.h (fetch_char_advance, fetch_char_advance_no_check)
(buf_next_char_len, next_char_len, buf_prev_char_len)
(prev_char_len, inc_both, dec_both): New inline functions,
replacing the old character.h macros FETCH_CHAR_ADVANCE,
FETCH_CHAR_ADVANCE_NO_CHECK, BUF_INC_POS, INC_POS, BUF_DEC_POS,
DEC_POS, INC_BOTH, DEC_BOTH respectively. All callers changed.
These new functions all assume buffer primitives and so need
to be here rather than in character.h.
* src/casefiddle.c (make_char_unibyte): New static function,
replacing the old MAKE_CHAR_UNIBYTE macro. All callers changed.
(do_casify_unibyte_string): Use SINGLE_BYTE_CHAR_P instead
of open-coding it.
* src/ccl.c (GET_TRANSLATION_TABLE): New static function,
replacing the old macro of the same name.
* src/character.c (string_char): Omit 2nd arg. 3rd arg can no
longer be NULL. All callers changed.
* src/character.h (SINGLE_BYTE_CHAR_P): Move up.
(MAKE_CHAR_UNIBYTE, MAKE_CHAR_MULTIBYTE, PREV_CHAR_BOUNDARY)
(STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE)
(FETCH_STRING_CHAR_ADVANCE)
(FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE)
(FETCH_STRING_CHAR_ADVANCE_NO_CHECK, FETCH_CHAR_ADVANCE)
(FETCH_CHAR_ADVANCE_NO_CHECK, INC_POS, DEC_POS, INC_BOTH)
(DEC_BOTH, BUF_INC_POS, BUF_DEC_POS): Remove.
(make_char_multibyte): New static function, replacing
the old macro MAKE_CHAR_MULTIBYTE. All callers changed.
(CHAR_STRING_ADVANCE): Remove; all callers changed to use
CHAR_STRING.
(NEXT_CHAR_BOUNDARY): Remove; it was unused.
(raw_prev_char_len): New inline function, replacing the
old PREV_CHAR_BOUNDARY macro. All callers changed.
(string_char_and_length): New inline function, replacing the
old STRING_CHAR_AND_LENGTH macro. All callers changed.
(STRING_CHAR): Rewrite in terms of string_char_and_length.
(string_char_advance): New inline function, replacing the old
STRING_CHAR_ADVANCE macro. All callers changed.
(fetch_string_char_advance): New inline function, replacing the
old FETCH_STRING_CHAR_ADVANCE macro. All callers changed.
(fetch_string_char_as_multibyte_advance): New inline function,
replacing the old FETCH_STRING_CHAR_AS_MULTIBYTE_ADVANCE macro.
All callers changed.
(fetch_string_char_advance_no_check): New inline function,
replacing the old FETCH_STRING_CHAR_ADVANCE_NO_CHECK macro. All
callers changed.
* src/regex-emacs.c (HEAD_ADDR_VSTRING): Remove; no longer used.
* src/syntax.c (scan_lists): Use dec_bytepos instead of
open-coding it.
* src/xdisp.c (string_char_and_length): Rename from
string_char_and_length to avoid name conflict with new function in
character.h. All callers changed.
Paul Eggert [Fri, 17 Apr 2020 14:57:25 +0000 (07:57 -0700)]
Prefer inline functions in character.h
In character.h, replace macros with inline functions or enums
when this is easy. This improves maintainability and
on my platform (Fedora 31 x86-64, gcc -O2) improved CPU
performance very slightly (0.3%) on ‘make compile-always’.
* src/buffer.h (SANE_TAB_WIDTH, CHARACTER_WIDTH):
Move here from character.h, and make them inline functions.
Tune CHARACTER_WIDTH so that ASCII_CHAR_WIDTH is no longer needed.
(sanitize_tab_width, sanitize_char_width):
Move here from character.h.
* src/character.h (MAX_CHAR, MAX_UNICODE_CHAR, MAX_1_BYTE_CHAR)
(MAX_2_BYTE_CHAR, MAX_3_BYTE_CHAR, MAX_4_BYTE_CHAR)
(MAX_5_BYTE_CHAR, MIN_MULTIBYTE_LEADING_CODE)
(MAX_MULTIBYTE_LEADING_CODE, MAX_MULTIBYTE_LENGTH):
Now enum constants instead of macros.
* src/character.h (CHAR_BYTES): Redo to avoid conditional branches.
(CHAR_BYTE8_P, BYTE8_TO_CHAR, UNIBYTE_TO_CHAR, CHAR_TO_BYTE8)
(CHAR_TO_BYTE_SAFE, CHAR_BYTE8_HEAD_P, CHARACTERP)
(CHECK_CHARACTER, CHECK_CHARACTER_CAR, CHECK_CHARACTER_CDR)
(CHAR_PRINTABLE_P, CHAR_BYTES, CHAR_LEADING_CODE, BYTE8_STRING)
(LEADING_CODE_P, TRAILING_CODE_P, CHAR_HEAD_P)
(BYTES_BY_CHAR_HEAD):
Now inline functions instead of macros.
(ASCII_CHAR_WIDTH): Remove; no longer used.
* src/conf_post.h (ATTRIBUTE_PURE): New macro.
* src/lisp.h (char_table_ref): Use it, for better inlining.
* src/fns.c (base64_decode_1): Add now-necessary casts.
Basil L. Contovounesios [Tue, 14 Apr 2020 14:26:04 +0000 (15:26 +0100)]
Fix effect-free warning in ob-screen.el while loop
The warning was introduced and detected by an optimizer addition
proposed in the following thread:
https://lists.gnu.org/archive/html/emacs-devel/2019-12/msg00711.html
* lisp/org/ob-screen.el (org-babel-screen-test): Avoid 'value
returned from (format "...") is unused' warning by doing something
more useful than busy string manipulation while waiting for an
asynchronous subprocess to make the temporary file readable.
Nicolas Petton [Fri, 17 Apr 2020 10:21:36 +0000 (12:21 +0200)]
; lisp/ldefs-boot.el: Update.
Justin Timmons [Fri, 17 Apr 2020 04:00:19 +0000 (06:00 +0200)]
Bind 'n' and 'p' to move between symbols in apropos
* lisp/apropos.el (apropos-next-symbol)
(apropos-previous-symbol): New commands.
(apropos-mode-map): Bind above commands to 'n' and 'p'. (Bug#20694)
* etc/NEWS: Announce the new commands.
Masahiro Nakamura [Tue, 14 Apr 2020 13:37:17 +0000 (22:37 +0900)]
Fix comparing command names in strokes.el (bug#40600)
* lisp/strokes.el (strokes-alphabetic-lessp): Simply call string-lessp
because the cdr of the argument may be a string.
jakub-w [Thu, 16 Apr 2020 20:48:03 +0000 (13:48 -0700)]
Fix a typo in calculator.el
* lisp/calculator.el (calculator-expt): Overflowing exponentiation
caused the function to return -1.0e+INF if the base was an odd,
negative number, no matter what the exponent was.
Copyright-paperwork-exempt: yes
Amin Bandali [Thu, 16 Apr 2020 19:11:11 +0000 (15:11 -0400)]
* lisp/erc/erc.el: Add URL to the new ERC page on the Emacs site
Alan Third [Tue, 14 Apr 2020 21:56:06 +0000 (22:56 +0100)]
Use native image API for NS
* configure.ac (NATIVE_IMAGE_API): Move above NS definitions.
(HAVE_NATIVE_IMAGE_API): Set for NS.
(HAVE_PNG, HAVE_JPEG, HAVE_GIF, HAVE_TIFF): Enable on NS builds.
* src/image.c (HAVE_NS): Fix a number of #if's so they no longer rely
on HAVE_NS.
(PIX_MASK_DRAW): Add for HAVE_NS so libpng support will compile.
(image_can_use_native_api):
(native_image_load): Add NS support.
(png_load):
(jpeg_load):
(tiff_load):
(gif_load): Remove NS specific definitions.
* src/nsimage.m (ns_can_use_native_image_api): New function.
* src/nsterm.h: (ns_can_use_native_image_api): New function.
Alan Third [Sat, 11 Apr 2020 13:18:39 +0000 (14:18 +0100)]
Allow dynamic choice of drawing path on NS (bug#39883)
* src/nsterm.h (NS_DRAW_TO_BUFFER): Let this be enabled on versions
older than 10.14.
* src/nsterm.m (ns_update_begin):
(ns_update_end):
(ns_focus):
(ns_unfocus):
([EmacsView viewDidResize:]):
([EmacsView createDrawingBuffer]):
([EmacsView windowDidChangeBackingProperties:]):
([EmacsView copyRect:to:]):
([EmacsView wantsUpdateLayer]): Dynamically switch between drawing to a
buffer and drawing to the screen, depending on the version of AppKit
in use.
([EmacsView dealloc]): We can't release the context unless
NS_DRAW_TO_BUFFER is defined.
Alan Third [Sat, 4 Apr 2020 14:13:58 +0000 (15:13 +0100)]
Fix NS frame resizing issues (bug#40200, bug#28872)
* src/nsmenu.m (update_frame_tool_bar): Remove reference to
updateFrameSize.
* src/nsterm.h: ([EmacsView updateFrameSize]):
([EmacsView setRows:andColumns:]): Remove unused
method definitions.
(NS_PARENT_WINDOW_LEFT_POS):
(NS_PARENT_WINDOW_TOP_POS): Move to nsterm.m.
* src/nsterm.m (ns_parent_window_rect): New function.
(NS_PARENT_WINDOW_LEFT_POS):
(NS_PARENT_WINDOW_TOP_POS): Move to nsterm.m and simplify.
(ns_set_offset): Fix strange behaviours when using negative values.
(ns_set_window_size):
(ns_set_undecorated):
([EmacsView windowDidResize:]):
([EmacsView windowDidExitFullScreen]):
(ns_judge_scroll_bars): Remove references to updateFrameSize.
([EmacsView dealloc]): Unset resize notification and release buffer.
([EmacsView updateFrameSize:]): Remove function.
([EmacsView windowWillResize:toSize:]): Move some code to
viewDidResize.
([EmacsView viewDidResize]): New function.
([EmacsView initFrameFromEmacs:]): Set up resize notification and move
buffer creation until after the prerequisite objects are created.
([EmacsView toggleFullScreen:]): Set frame to the size of the
contentview, not the whole window, and remove reference to
updateFrameSize.
([EmacsView setRows:andColumns:]): Remove unused method.
([EmacsView windowDidMove:]): Tidy up.
Andrea Corallo [Thu, 16 Apr 2020 18:03:54 +0000 (19:03 +0100)]
* lisp/emacs-lisp/comp.el (comp-never-optimize-functions): Better doc fix
Mattias Engdegård [Thu, 16 Apr 2020 17:40:26 +0000 (19:40 +0200)]
Improve regexp in org-table-finish-edit-field
* lisp/org/org-table.el (org-table-finish-edit-field):
Further improvement of regexp, as suggested by Paul Eggert.
Michael Albinus [Thu, 16 Apr 2020 17:51:23 +0000 (19:51 +0200)]
Ignore D-Bus errors in tramp-gvfs.el (Bug#40655)
* lisp/net/tramp-gvfs.el (with-tramp-dbus-call-method): Ignore D-Bus
errors. (Bug#40655)
Alan Mackenzie [Thu, 16 Apr 2020 17:01:14 +0000 (17:01 +0000)]
(forward-comment -n): escaped newline is sometimes NOT end of comment
* src/syntax.c (Fforward_comment) When comment-end-can-be-escaped is non-nil,
don't attempt back_comment when point is just after an escaped newline, etc.
Andrea Corallo [Thu, 16 Apr 2020 16:35:35 +0000 (17:35 +0100)]
Merge remote-tracking branch 'savannah/master' into HEAD
Andrea Corallo [Thu, 16 Apr 2020 17:59:40 +0000 (18:59 +0100)]
* lisp/emacs-lisp/comp.el (comp-never-optimize-functions): Add yes-or-no-p
Paul Eggert [Thu, 16 Apr 2020 16:22:42 +0000 (09:22 -0700)]
Fix type-checking bug in vertical-motion
* src/indent.c (Fvertical_motion): Fix bug where the type of lcols
was checked too late.
Glenn Morris [Thu, 16 Apr 2020 16:05:52 +0000 (09:05 -0700)]
* src/indent.c (Fvertical_motion): Fix int/Lisp_Object mix up.
Mattias Engdegård [Thu, 16 Apr 2020 15:33:02 +0000 (17:33 +0200)]
; * lisp/files.el (directory-files-no-dot-files-regexp): Arg name.
Mattias Engdegård [Thu, 16 Apr 2020 10:05:02 +0000 (12:05 +0200)]
Use directory-files-no-dot-files-regexp wherever possible
Suggested by Paul Eggert.
* lisp/files.el (directory-files-no-dot-files-regexp):
Clarify semantics and purpose.
* lisp/dired.el (dired-re-no-dot):
Define as obsolete alias of directory-files-no-dot-files-regexp.
(dired-delete-file):
* lisp/gnus/gnus-util.el (gnus-delete-directory):
* lisp/net/ange-ftp.el (ange-ftp-delete-directory):
* lisp/obsolete/vc-arch.el (vc-arch-trim-revlib):
* lisp/org/ob-core.el (org-babel-remove-temporary-directory):
* lisp/vc/vc-rcs.el (vc-rcs-unregister):
Use directory-files-no-dot-files-regexp.
Mattias Engdegård [Thu, 16 Apr 2020 09:27:43 +0000 (11:27 +0200)]
Quote semanticdb-ebrowse-default-file-name in regexp
Noticed by Andreas Schwab.
* lisp/cedet/semantic/db-ebrowse.el (semanticdb-load-ebrowse-caches):
Quote file name in regexp.