1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-15 15:50:57 -08:00
Commit graph

137657 commits

Author SHA1 Message Date
Stephen Leake
056cbcb7a9 Improve doc strings for some -search-path variables
* lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-search-path):
Improve doc string.

* lisp/progmodes/compile.el (compilation-search-path): Improve doc
string.

* lisp/progmodes/grep.el (grep-search-path): Improve doc string.
2019-07-30 11:02:03 -07:00
Mattias Engdegård
d0eeb62c43 Make tramp test regexp more robust
* test/lisp/net/tramp-tests.el (tramp-test17-insert-directory):
Match a greater variety of human-readable size values.
2019-07-22 16:38:02 +02:00
Michael Albinus
7f95d2d407 Support history files in remote shells (Bug#36742)
* doc/emacs/misc.texi (Shell Ring): Mention history file for
remote shells.

* lisp/shell.el (shell--start-prog): New buffer-local variable.
(shell): Set it.
(shell-mode): Handle history file for remote shells. (Bug#36742)
2019-07-22 13:04:14 +02:00
Martin Rudalics
8e0ebb9a3c Handle persistence of windows' scroll bar and fringes settings (Bug#36193)
* doc/lispref/display.texi (Fringe Size/Pos): Document new
argument PERSISTENT of 'set-window-fringes'.
(Scroll Bars): Document new argument PERSISTENT of
'set-window-scroll-bars'.  Mention that HORIZONTAL-TYPE must
be 'bottom' to show a horizontal scroll bar on mini windows.
* lisp/window.el (window-min-pixel-height): For mini windows the
minimum height is one line.
(window--min-size-1): Use value returned by
'window-min-pixel-height' when dealing with mini windows.
(window--resize-mini-window): Try to handle horizontal scroll
bars and size restrictions more accurately.
(window--state-put-2): Handle persistence of scroll bar
settings.
* src/frame.c (make_frame): Allow horizontal scroll bars in
mini windows.
(adjust_frame_size): Drop PIXELWISE argument in
'resize_frame_windows' calls.
* src/window.c (set_window_buffer): Don't override WINDOW's
scroll bar and fringe settings when marked as persistent.
(resize_frame_windows): Drop fourth argument PIXELWISE - SIZE
is always specified in terms of pixels.  Try to handle height
of mini windows more accurately.
(grow_mini_window, shrink_mini_window): Use body height of
mini window when calculating expected height change.  Take
horizontal scroll bars into account.
(struct saved_window): Two new members to handle persistence
of window fringes and scroll bars.
(Fset_window_configuration, save_window_save): Handle
persistence of fringes and scroll bars.
(set_window_fringes, set_window_scroll_bars): New arguments
PERSISTENT.  Make dimension checks more accurate.
(Fset_window_fringes): New argument PERSISTENT.
(Fwindow_fringes, Fwindow_scroll_bars): Add PERSISTENT to
return values.
(Fset_window_scroll_bars): New argument PERSISTENT.  In
doc-string mention that 'bottom' must be specified to get a
horizontal scroll bar in mini windows.
(compare_window_configurations): Add checks for persistence of
fringes and scroll bars.
* src/window.h (struct window): New boolean slots
'fringes_persistent' and 'scroll_bars_persistent'.
(WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Allow horizontal scroll bars
for mini windows.
(resize_frame_windows): Remove fourth argument of
'resize_frame_windows' in external declaration.
* src/xdisp.c (resize_mini_window): Use box text height to
tell whether mini window height changed.
(set_horizontal_scroll_bar): Set mini window's horizontal
scroll bar when its type is specified as 'bottom'.
* etc/NEWS: Mention new options for 'set-window-fringes' and
'set-window-scroll-bars'.
2019-07-22 09:19:18 +02:00
Alan Mackenzie
5ccaee4bbc Implement C++ Mode attributes. This fixes bug #36650.
* lisp/progmodes/cc-engine.el (c-looking-at-c++-attribute)
(c-enclosing-c++-attribute, c-slow-enclosing-c++-attribute): New macro and
functions.
(c-crosses-statement-barrier-p): Add [ into skip-chars for C++ Mode, and use
it to detect and skip over an attribute whilst scanning forward.
(c-sws-lit-type): Use the new value 'attribute.
(c-invalidate-sws-region-before): Put a save-match-data around this function.
Detect and handle an enclosing attribute at either END or BEG.
(c-invalidate-sws-region-after): Handle C++ attributes.
(c-forward-sws, c-backward-sws): Handle C++ attributes.

* lisp/progmodes/cc-mode.el (c-fl-decl-end): Detect and handle point being
inside a C++ attribute.
2019-07-21 21:08:03 +00:00
Paul Eggert
5d4dd552c2 Fix lifetime error in previous patch
Problem reported by Pip Cet in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00520.html
* src/alloc.c (inhibit_garbage_collection): Use new function.
(allow_garbage_collection): Accept intmax_t, not pointer.
* src/eval.c (default_toplevel_binding, do_one_unbind)
(backtrace_eval_unrewind, Fbacktrace__locals, mark_specpdl):
Support SPECPDL_UNWIND_INTMAX.
(record_unwind_protect_excursion): New function.
* src/lisp.h (enum specbind_tag): New constant SPECPDL_UNWIND_INTMAX.
(union specbinding): New member unwind_intmax.
2019-07-21 12:32:16 -07:00
Paul Eggert
d02c2f7f65 Speed up maybe_gc when GC is inhibited
* src/alloc.c (allow_garbage_collection)
(inhibit_garbage_collection): Temporarily bump
consing_until_gc, to improve performance of maybe_gc while
garbage collection is inhibited.  Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2019-07/msg00511.html
2019-07-21 11:24:11 -07:00
Paul Eggert
c72e6328b4 Avoid integer overflow in hash table size
* src/fns.c (INDEX_SIZE_BOUND): Use a tighter bound.
(maybe_resize_hash_table): Avoid integer overflow when
checking for hash table size overflow.  Fix confusion
between INDEX_SIZE_BOUND (which is for the index vector)
and hash table size.  Fix typo in debugging message
when ENABLE_CHECKING.
2019-07-21 11:24:11 -07:00
Paul Eggert
cf285946be Improve doc for hash tables
* doc/lispref/hash.texi (Creating Hash, Defining Hash):
* src/fns.c (Fsxhash_eq, Fsxhash_eql, Fsxhash_equal):
Say that hashes are fixnums.
(Fmake_hash_table): Say that that an integer rehash-size
should be a fixnum.
* doc/lispref/hash.texi (Defining Hash): Say that hash and
comparison functions should be consistent and pure, and should
return quickly.
2019-07-21 11:24:11 -07:00
Paul Eggert
4a1507b88e pure_alloc returns cleared memory
* src/alloc.c (pure_alloc): Clear any heap-allocated storage.
This is simpler than auditing all the callers to make sure
they don’t assume pure memory is cleared memory, and the
performance implication is nonexistent except when Emacs
is misconfigured.  Also, add an assertion to catch
caller misuse when pure space is exhausted.
2019-07-21 11:24:11 -07:00
Lars Ingebrigtsen
51f5c19431 Make the unflag-p parameter in dired-mark-unmarked-files work
* lisp/dired-x.el (dired-mark-unmarked-files): Make the unflag-p
parameter work (bug#27465).
2019-07-21 17:40:51 +02:00
Lars Ingebrigtsen
ca08815943 Don't override SSH_AUTH_SOCK in the example emacs.service file
* etc/emacs.service (ExecStop): Don't override SSH_AUTH_SOCK by
default, because it varies by distribution where the socket is
(bug#27620).
2019-07-21 17:11:59 +02:00
Lars Ingebrigtsen
76d0ca983b Fill footnotes better on `M-q'
* lisp/mail/footnote.el (footnote--fill-paragraph): New function
(bug#27775).
(footnote-mode): Use it.
2019-07-21 16:43:11 +02:00
Ken Brown
8b13ec1d70 Fix expand-file-name for names starting with '~'
* src/fileio.c: (file_name_absolute_no_tilde_p):
New static function.
(Fexpand_file_name): If the current buffer's default-directory
starts with "~user" where "user" is not a valid user name, don't
give the '~' a special meaning.  Just treat the value of
default-directory as a relative name.  (Bug#36502)
* test/src/fileio-tests.el
(fileio-tests--relative-default-directory): Add a test.
2019-07-21 10:40:54 -04:00
Gemini Lasswell
0c48c0d0b2 Fix inline-quote Edebug spec
* lisp/emacs-lisp/inline.el (inline-quote): Fix the edebug spec
(bug#31051).
2019-07-21 15:40:48 +02:00
Paul Eggert
49e80e765b Tweak recent hash-table fix
* src/fns.c (maybe_resize_hash_table): Completely initialize the
new ‘next’ vector before allocating more vectors, as this
preserves locality a bit better and it’s safer not to leave an
uninitialized Lisp object around.  Use next_size instead of
new_size to compute new index size.
2019-07-20 23:21:41 -07:00
Paul Eggert
515afc9c15 Fix crash if user test munges hash table
* src/fns.c (restore_mutability)
(hash_table_user_defined_call): New functions.
(cmpfn_user_defined, hashfn_user_defined): Use them.
(make_hash_table, copy_hash_table):
Mark new hash table as mutable.
(check_mutable_hash_table): New function.
(Fclrhash, Fputhash, Fremhash): Use it instead of CHECK_IMPURE.
* src/lisp.h (struct hash_table_test): User-defined functions
now take pointers to struct Lisp_Hash_Table, not to struct
hash_table_test.  All uses changed.
(struct Lisp_Hash_Table): New member ‘mutable’.
* src/pdumper.c (dump_hash_table): Copy it.
* test/src/fns-tests.el (test-hash-function-that-mutates-hash-table):
New test, which tests for the bug.
2019-07-20 20:13:46 -07:00
Paul Eggert
b6f194a0fb Simplify hashfn/cmpfn calling convention
* src/fns.c (cmpfn_eql, cmpfn_equal, cmpfn_user_defined)
(hashfn_eq, hashfn_equal, hashfn_eql, hashfn_user_defined):
* src/profiler.c (cmpfn_profiler, hashfn_profiler):
Use new calling convention where the return value is a fixnum
instead of EMACS_UINT.  While we’re at it, put the hash table
at the end, since that’s a bit simpler and generates better
code (at least on the x86-64).  All callers changed.
* src/fns.c (hash_lookup): Store fixnum rather than EMACS_UINT.
All callers changed.
(hash_put): Take a fixnum rather than an EMACS_UINT.
All callers changed.  Remove unnecessary eassert (XUFIXNUM does it).
* src/lisp.h (struct hash_table_test):
Adjust signatures of cmpfn and hashfn.
2019-07-20 20:13:46 -07:00
Paul Eggert
5018b663c6 Inhibit GC after inhibit_garbage_collection
Without this patch, there are unlikely ways that garbage
collection could occur (sometimes causing undefined behavior)
even when inhibit_garbage_collection is in effect.
* src/alloc.c (garbage_collection_inhibited): New var.
(pure_alloc): Increment it if pure space is exhausted, so that
garbage_collect_1 no longer needs to inspect
pure_bytes_used_before_overflow.
(allow_garbage_collection): New function.
(inhibit_garbage_collection): Increment the new variable rather
than specbinding a user variable.
(garbage_collect_1): Do not garbage collect if the new variable
is set, rather than if pure_bytes_used_before_overflow is set.
2019-07-20 20:13:46 -07:00
Paul Eggert
26de2d42d0 Simplify maybe_gc implementation
* src/alloc.c (consing_until_gc): New variable, replacing the
combination of consing_since_gc and gc_relative_threshold.
All uses changed.
(byte_ct): Move decl here from lisp.h.
(memory_full_cons_threshold): New an enum constant.
(free_cons): Check for integer overflow in
statistics calculation.
* src/lisp.h (object_ct): Move decl here from alloc.c.
(OBJECT_CT_MAX): New macro.
(maybe_gc): Simplify accordingly.
2019-07-20 20:13:46 -07:00
Paul Eggert
df5024dbae Rename ‘pure’ to ‘purecopy’
* src/lisp.h (struct Lisp_Hash_Table): Rename ‘pure’ member to
‘purecopy’, as the old name was quite confusing (it did not
mean the hash table was pure).  All uses changed.
2019-07-20 20:13:45 -07:00
Paul Eggert
b0908a0fe6 Fix hash table overallocation etc.
* src/fns.c (set_hash_key_and_value, set_hash_next)
(set_hash_hash, set_hash_index): Remove.  All uses removed.
(maybe_resize_hash_table): Don’t update h->next until it’s
known that all the allocations succeeded, to avoid trashing
the hash table if memory is exhausted.  Don’t overallocate the
other vectors.  Don’t output growth message if the hash table
didn’t actually grow due to allocation failure.  Assume C99
decls after statements.
2019-07-20 20:13:45 -07:00
Noam Postavsky
6490269bec Merge from emacs-26
150bdfe43a Handle completely undecoded input in term (Bug#29918)
021f32cca1 * doc/misc/forms.texi (Control File Format): Fix a doc error.
76538d09b7 Fix typo in package-alist docstring
b2fde4b5e8 * doc/lispref/text.texi (Mode-Specific Indent): Fix a typo...
7e62778548 ; Another minor change in 'bidi-display-reordering's doc s...
4455ddbe56 Improve doc string of 'bidi-display-reordering'
34ee26dd93 Add warning to bidi-display-reordering doc string

# Conflicts:
#	lisp/term.el
#	test/lisp/term-tests.el
2019-07-20 22:02:36 -04:00
Noam Postavsky
150bdfe43a Handle completely undecoded input in term (Bug#29918)
* lisp/term.el (term-emulate-terminal): Avoid errors if the whole
decoded string is eight-bit characters.  Don't attempt to save the
string for next iteration in that case.
* test/lisp/term-tests.el (term-decode-partial)
(term-undecodable-input): New tests.
2019-07-20 21:35:21 -04:00
Basil L. Contovounesios
f02b9e9a6f Use lexical-binding in compface.el
* lisp/image/compface.el: Use lexical-binding.  Extend Keywords
header.
(uncompface): Call call-process-region directly.
2019-07-21 02:16:09 +01:00
Oleh Krehel
45fc6f203e * lisp/files.el (file-size-function): Add :version tag 2019-07-20 19:31:07 +02:00
Stefan Monnier
189296bfcc * test/manual/indent/octave.m (spmd): Add test for last change 2019-07-20 12:19:57 -04:00
Stefan Monnier
625b23fc6f * lisp/progmodes/octave.el (matchedrules): Add spmd...end (bug#36703) 2019-07-20 12:05:07 -04:00
Basil L. Contovounesios
a1b49f3bff Fix last change to format-spec
* doc/lispref/text.texi (Interpolated Strings): Use @result and fix
typos.
* lisp/format-spec.el: Avoid loading subr-x at runtime.
(format-spec--parse-modifiers): Optimize slightly.
2019-07-20 16:46:04 +01:00
Basil L. Contovounesios
b728620a75 Allow counter-clockwise rotations in image-rotate
* lisp/image.el (image-rotate): Extend with an optional argument
specifying the rotation in degrees (bug#35421).
* doc/lispref/display.texi (Showing Images):
* etc/NEWS: Document the change.
* test/lisp/image-tests.el (image-rotate): New test.
2019-07-20 16:00:31 +01:00
Lars Ingebrigtsen
6b882ea353 Mark the gnus-article-date-headers NEWS entry as documented 2019-07-20 15:03:33 +02:00
Adam Sjøgren
2019a6d8a8 Enable showing local time and lapsed time in Gnus
* lisp/gnus/gnus-art.el (article-make-date-combine-with-lapsed) factor
code out into new function, used for providing both combined-lapsed
and combined-local-lapsed.
2019-07-20 15:02:22 +02:00
Lars Ingebrigtsen
d5c1e1211a Clean up code in nnimap-parse-flags slightly
* lisp/gnus/nnimap.el (nnimap-parse-flags): Clean up code
slightly, removing redundant checks for `end'.
2019-07-20 14:08:36 +02:00
N. Jackson
021f32cca1 * doc/misc/forms.texi (Control File Format): Fix a doc error.
(Bug#36693)

Copyright-paperwork-exempt: yes
2019-07-20 12:53:10 +03:00
Eli Zaretskii
0731273fac Fix last change
* etc/NEWS: Call out the change in matching REGEXP.

* lisp/files.el (magic-mode-alist)
(magic-fallback-mode-alist): Doc fix.  (Bug#36401)
2019-07-20 12:34:02 +03:00
Benjamin Riefenstahl
e6bfc6753c Make REs in magic-(fallback-)mode-alist case-sensitive.
These variables are used for well-defined file formats where relaxed
case matching is not wanted usually.

* lisp/files.el (magic-mode-alist, magic-fallback-mode-alist): Update
the doc string.
(set-auto-mode): Make looking-at for elements of magic-mode-alist and
magic-fallback-mode-alist use case-fold-search == nil.
* lisp/files.el (files-test-magic-mode-alist-re-baseline)
(files-test-magic-mode-alist-re-no-match)
(files-test-magic-mode-alist-re-case-diff): Add.
2019-07-20 12:27:19 +03:00
Stefan Kangas
070dd43909 Make finder-exit use quit-window (Bug#33610)
* lisp/finder.el (finder-exit): Quit window instead of
deleting.  This restores previous contents of the window,
if any, that was usurped by "C-h p" to show the list of
packages.
2019-07-20 12:23:07 +03:00
Mauro Aranda
b6bef9f193 Remove duplicated code in octave-eldoc-function
* lisp/progmodes/octave.el (octave-eldoc-function): The
test of position of the opening parenthesis in
inferior-octave-process was duplicated.  Remove one of
the tests.  (Bug#36557)
2019-07-20 12:13:38 +03:00
Oleh Krehel
fd5410217f * lisp/files.el (file-size-function): New defcustom 2019-07-19 18:55:47 +02:00
Mattias Engdegård
b663fbcd06 Neater free disk space formatting
* lisp/files.el (get-free-disk-space): Update doc string.
Use `iec' style and proper spacing.
2019-07-19 11:16:46 +02:00
Martin Rudalics
8d34cb3f07 Have 'display-buffer-reuse-window' prefer window on selected frame (Bug#36680)
* lisp/window.el (display-buffer-reuse-window): Preferably reuse
window on selected frame (Bug#36680).
* doc/lispref/windows.texi (Buffer Display Action Functions): Say
that 'display-buffer-reuse-window' prefers window on the selected
frame.
2019-07-19 10:08:08 +02:00
Noam Postavsky
8f54998827 Don't load elec-pair in elisp-mode (Bug#36539)
* lisp/progmodes/elisp-mode.el (emacs-lisp-set-electric-text-pairs):
New function.
(emacs-lisp-mode): Add it to electric-pair-mode-hook, if elec-pair
hasn't been loaded yet.
2019-07-18 20:06:27 -04:00
Stefan Kangas
daf5c4309f Use lexical-binding in help-fns-tests.el (Bug#36585)
* test/lisp/help-fns-tests.el: Use lexical-binding.  Doc fix.
2019-07-18 20:06:27 -04:00
Stefan Kangas
bba80faf87 Declare mwheel-install obsolete (Bug#36553)
* lisp/mwheel.el: Update `Commentary' section.
(mwheel-install): Declare obsolete in favor of mouse-wheel-mode.
* etc/NEWS: Announce it.
2019-07-18 20:06:27 -04:00
Juri Linkov
940cbaa792 * lisp/vc/vc-git.el (vc-git-log-search): Remove shell-quote-argument.
(Bug#36644)
2019-07-19 01:35:27 +03:00
Michael Albinus
5130a95cd1 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2019-07-18 20:46:39 +02:00
Michael Albinus
12d6abb27f ; Fix last commit in tramp-sh.el 2019-07-18 20:46:25 +02:00
Simen Heggestøyl
b4eaa7eace Use lexical-binding in asm-mode.el and add tests
* lisp/progmodes/asm-mode.el: Use lexical-binding.
(asm-comment-char): Remove redundant :group arg.
(asm-mode): Use `setq-local'.
(asm-calculate-indentation): Remove moot `or'.

* test/lisp/progmodes/asm-mode-tests.el: New file with tests for
asm-mode.el.
2019-07-18 20:41:47 +02:00
Michael Albinus
71ce14a83e Determine file-notify' handler in Tramp from special-event-map'.
* lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter)
(tramp-sh-gvfs-monitor-dir-process-filter)
(tramp-sh-inotifywait-process-filter): Determine `file-notify'
handler from `special-event-map'.
2019-07-18 20:26:24 +02:00
Stefan Monnier
8a2f763e5c * lisp/server.el (server-ensure-safe-dir): Revert part of b663c83724
A non-cosmetic change that was mistakenly included.
2019-07-18 11:10:05 -04:00