Michael Albinus [Thu, 13 Dec 2018 13:19:22 +0000 (14:19 +0100)]
* doc/misc/tramp.texi (Ad-hoc multi-hops): Reinsert lost line.
João Távora [Thu, 13 Dec 2018 00:09:01 +0000 (00:09 +0000)]
Allow per-diagnostic overlay properties in Flymake
* lisp/progmodes/flymake.el (Version): Bump to 1.0.3.
(flymake--diag): Add new field overlay-properties.
(flymake-make-diagnostic): New optional arg overlay-properties.
(flymake--highlight-line): Use it.
Juri Linkov [Wed, 12 Dec 2018 23:17:05 +0000 (01:17 +0200)]
* lisp/vc/vc.el (vc-find-revision-no-save): Use decode-coding-inserted-region
and after-insert-file-set-coding. Don't let-bind coding-system-for-read
and coding-system-for-write. For non-interactive use, let-bind
enable-local-variables to :safe and ignore errors from set-auto-mode call.
(Bug#33567)
Glenn Morris [Wed, 12 Dec 2018 22:01:06 +0000 (17:01 -0500)]
Improve em-ls-test-bug27844
* test/lisp/eshell/em-ls-tests.el (em-ls-test-bug27844):
Skip if source-directory absent.
Paul Eggert [Wed, 12 Dec 2018 17:54:42 +0000 (09:54 -0800)]
Simplify validate_interval_range and callers
* src/textprop.c (validate_interval_range):
Remove useless code. Fix comment to match current behavior.
(set_text_properties, copy_text_properties): Simplify, as
validate_interval_range has not incremented START or END for
quite some time.
(copy_text_properties): Assume C99. Fix an unlikely
integer overflow bug if WIDE_EMACS_INT.
Paul Eggert [Wed, 12 Dec 2018 17:54:42 +0000 (09:54 -0800)]
set_text_properties_1 can assume START <= END
* src/textprop.c (set_text_properties_1):
Do not swap START and END. All callers do that already,
and the test for swapping here is redundant.
Eli Zaretskii [Wed, 12 Dec 2018 16:27:05 +0000 (18:27 +0200)]
Fix regression in expand-file-name with drive-relative HOME
* src/fileio.c (get_homedir) [DOS_NT]: Expand drive-relative
$HOME to begin with "X:/".
* test/src/fileio-tests.el (fileio-tests--relative-HOME): Add
testing of drive-relative value of $HOME on MS-Windows and
MS-DOS.
Michael Albinus [Wed, 12 Dec 2018 09:49:59 +0000 (10:49 +0100)]
Fix Bug#33568
* test/lisp/net/secrets-tests.el (secrets-test02-collections)
(secrets-test03-items): Do not expect "login" collection to
exist. (Bug#33568)
Stefan Monnier [Tue, 11 Dec 2018 22:54:13 +0000 (17:54 -0500)]
* lisp/emacs-lisp/map.el: Make the functions generic
Make them document their delegation relationship, to clarify when
a method is needed.
(map--dispatch): Give more info in the error message.
(map-elt): Make it generic and deprecate the 'testfn' arg.
(map-put): Make it obsolete.
(map-length): Make it work on hash-tables.
(map-apply): Define it in terms of map-do.
(map-do, map-into): Use cl-generic dispatch instead of map--dispatch.
(map-empty-p): Define it in terms of map-length.
(map-contains-key): Deprecate 'testfn'. Make it return a boolean, so
it can return non-nil even if 'key' is nil. Improve implementation to
avoid constructing an intermediate list of all keys.
(map-merge-with): Use 'eql' rather than `eq'.
(map-put!): Rename from map--put and make it generic, to replace map-put.
(map--apply-alist, map--apply-hash-table, map--apply-array):
Turn them into methods of map-apply.
(map--do-alist, map--do-array): Turn them into methods of map-do.
(map--into-hash-table): Turn it into a method of map-into.
Martin Rudalics [Tue, 11 Dec 2018 07:56:15 +0000 (08:56 +0100)]
Fix typo in 'dired-restore-positions'
* lisp/dired.el (dired-restore-positions): Fix typo in last
change fixing Bug#33458.
Glenn Morris [Tue, 11 Dec 2018 01:40:16 +0000 (20:40 -0500)]
Add test/Makefile machinery to exclude test .el files
* test/Makefile.in (EXCLUDE_TESTS): New variable.
(ELFILES): Filter out any specified exclude files.
Nobuyoshi Nakada [Tue, 11 Dec 2018 01:12:46 +0000 (03:12 +0200)]
Support Ruby block arguments ending with , or *
* lisp/progmodes/ruby-mode.el (ruby-smie--forward-token):
Recognize punctuation before "closing-|" as a separate token.
(ruby-smie--backward-token): Same (bug#33487).
* test/lisp/progmodes/ruby-mode-tests.el
(ruby-forward-sexp-jumps-do-end-block-with-no-args)
(ruby-backward-sexp-jumps-do-end-block-with-no-args)
(ruby-forward-sexp-jumps-do-end-block-with-empty-args)
(ruby-backward-sexp-jumps-do-end-block-with-empty-args)
(ruby-forward-sexp-jumps-do-end-block-with-args)
(ruby-backward-sexp-jumps-do-end-block-with-args)
(ruby-forward-sexp-jumps-do-end-block-with-any-args)
(ruby-forward-sexp-jumps-do-end-block-with-expanded-one-arg)
(ruby-forward-sexp-jumps-do-end-block-with-one-and-any-args)
(ruby-backward-sexp-jumps-do-end-block-with-one-and-any-args):
New tests.
Juri Linkov [Tue, 11 Dec 2018 00:36:46 +0000 (02:36 +0200)]
* lisp/isearch.el (isearch-pre-command-hook): Support `isearch-move'
command properties with values `enabled' and `disabled'
also for the value `shift' of isearch-yank-on-move. (Bug#15839)
Juri Linkov [Mon, 10 Dec 2018 23:54:20 +0000 (01:54 +0200)]
* lisp/vc/vc.el (vc-root-version-diff): New command (bug#33650).
(vc-root-diff): Call it interactively on a prefix argument.
Matthias Meulien [Tue, 4 Sep 2018 20:50:56 +0000 (22:50 +0200)]
Support git commit --no-verify
* lisp/vc/vc-git.el (vc-git-log-edit-toggle-no-verify): New function.
(vc-git-log-edit-mode-map): Add binding.
(vc-git-checkin): Add an entry for that header.
Paul Eggert [Mon, 10 Dec 2018 21:40:43 +0000 (13:40 -0800)]
Fix bug when hashing reversed buffer regions
* src/fns.c (extract_data_from_object): When checking
file-coding-system-alist, calculate the coding system
correctly even if START and END are out of order.
Use bool for booleans.
Glenn Morris [Mon, 10 Dec 2018 17:43:05 +0000 (09:43 -0800)]
Merge from origin/emacs-26
2075864 (origin/emacs-26) CC Mode: stop extra parens on expression ca...
Glenn Morris [Mon, 10 Dec 2018 17:43:05 +0000 (09:43 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
0220391 Fix cairo scrolling for side-by-side windows
Glenn Morris [Mon, 10 Dec 2018 17:43:05 +0000 (09:43 -0800)]
Merge from origin/emacs-26
5a7451c CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer t...
b0ed9d1 * lisp/emacs-lisp/cursor-sensor.el: Add motivation
Glenn Morris [Mon, 10 Dec 2018 17:43:05 +0000 (09:43 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
ee1ebe8 Guard occur against an undefined orig-line
Glenn Morris [Mon, 10 Dec 2018 17:43:05 +0000 (09:43 -0800)]
Merge from origin/emacs-26
908af9d Indexing followup to recent changes
505ac9a Improve documentation of cursor-sensor.el (bug#33664)
d817d2c * doc/lispref/commands.texi (Adjusting Point): Bug#33662
18442da Tramp multi-hop methods must be inline
1e3e24d ; * src/xterm.c (x_update_begin): Fix whitespace.
1d743d2 Fix scaling problem in Cairo builds
2b9e993 ; * doc/lispref/text.texi (Special Properties): Fix wording. ...
e568202 * lisp/simple.el (next-line-or-history-element): Use current-...
c7897c2 A few further fixes of window internals description
# Conflicts:
# doc/misc/tramp.texi
Glenn Morris [Mon, 10 Dec 2018 17:42:17 +0000 (12:42 -0500)]
* admin/gitmerge.el (gitmerge-skip-regexp): Add yet another variant.
Michael Albinus [Mon, 10 Dec 2018 15:52:21 +0000 (16:52 +0100)]
* lisp/net/tramp-compat.el (tramp-compat-flatten-list): New defun.
Stefan Monnier [Mon, 10 Dec 2018 15:06:34 +0000 (10:06 -0500)]
* lisp/Makefile.in (compile-main): Use a more selective regexp.
Alan Mackenzie [Mon, 10 Dec 2018 14:30:40 +0000 (14:30 +0000)]
CC Mode: stop extra parens on expression causing false fontification as type
* lisp/progmodes/cc-fonts.el (c-get-fontification-context): recognize
arithmetic operator followed by several open parentheses, not just one, as not
being an argument list.
Ari Roponen [Sun, 6 May 2018 12:29:28 +0000 (15:29 +0300)]
Fix cairo scrolling for side-by-side windows
Backport: Fixes Bug#33442.
* src/xterm.c (x_scroll_run) [USE_CAIRO]: Fix scrolling for
side-by-side split windows. (Bug#31288)
(cherry picked from commit
6e362a32bc9d21f73a0f29ca6f45481edeea6f29)
Alan Mackenzie [Mon, 10 Dec 2018 12:12:02 +0000 (12:12 +0000)]
CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer to type a"
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When testing for an
identifier after "a *", on failure additionally check for a digit, setting a
new flag variable got-number if one is found. In the test for CASE 18, check
this flag.
Stefan Monnier [Mon, 10 Dec 2018 01:56:35 +0000 (20:56 -0500)]
* lisp/emacs-lisp/cursor-sensor.el: Add motivation
Paul Eggert [Mon, 10 Dec 2018 01:07:16 +0000 (17:07 -0800)]
Remove CHECK_FIXNUM_CAR etc.
* src/coding.c (CHECK_FIXNAT_CAR, CHECK_FIXNAT_CDR):
* src/lisp.h (CHECK_FIXNUM_CAR, CHECK_FIXNUM_CDR):
Remove. All uses removed. These seem to have been based on
the assumption that the argument cons needs to be modified,
an assumption that is incorrect for fixnums.
(Fdefine_coding_system_internal): Use CHECK_RANGED_INTEGER
instead of a special diagnostic for graphic register numbers.
Glenn Morris [Sun, 9 Dec 2018 23:54:35 +0000 (15:54 -0800)]
* test/lisp/eshell/eshell-tests.el (with-temp-eshell):
Avoid permanently changing HISTFILE.
Juri Linkov [Sun, 9 Dec 2018 23:53:08 +0000 (01:53 +0200)]
Fix occur for non-nil list-matching-lines-jump-to-current-line (bug#33476)
* lisp/replace.el (occur-engine): Move orig-line let-binding higher.
Don't use start-line in forward-line.
Raimon Grau [Sun, 9 Dec 2018 23:42:41 +0000 (01:42 +0200)]
Guard occur against an undefined orig-line
; Not to be merged to master
* lisp/replace.el (occur-engine): Avoid inserting the current line if
orig-line is nil. This happens, for example, when reverting an occur
buffer with `list-matching-lines-jump-to-current-line' set to t.
(Bug#33476)
Michael Albinus [Sun, 9 Dec 2018 16:09:53 +0000 (17:09 +0100)]
* test/lisp/net/tramp-tests.el (tramp-test03-file-name-host-rules):
Use proper error symbol.
Eli Zaretskii [Sun, 9 Dec 2018 15:14:55 +0000 (17:14 +0200)]
Indexing followup to recent changes
* doc/lispref/text.texi (Special Properties): Index
'cursor-sensor-inhibit'. (Bug#33664)
Stefan Monnier [Sun, 9 Dec 2018 13:59:20 +0000 (08:59 -0500)]
Improve documentation of cursor-sensor.el (bug#33664)
* doc/lispref/text.texi (Special Properties): Mention cursor-sensor-inhibit.
* lisp/emacs-lisp/cursor-sensor.el (Commentary): Add cursor-sensor-mode.
(cursor-sensor-inhibit): Add docstring.
Stefan Monnier [Sun, 9 Dec 2018 13:34:35 +0000 (08:34 -0500)]
* doc/lispref/commands.texi (Adjusting Point): Bug#33662
Tweak text to clarify intangibility.
Alan Mackenzie [Sun, 9 Dec 2018 12:59:03 +0000 (12:59 +0000)]
Don't create *Compile-Log* due to byte-compile. Amend message to it.
This fixes bug #33602 and is a partial reversion of a commit from
2018-11-28T13:15:50.
* lisp/emacs-lisp/bytecomp.el (byte-compile-log-file): Don't create buffer
*Compile-Log* because it doesn't already exist. Amend message "Compiling no
file" to be clearer (?and less irritating).
Michael Albinus [Sun, 9 Dec 2018 08:55:29 +0000 (09:55 +0100)]
Tramp multi-hop methods must be inline
* doc/misc/tramp.texi (Ad-hoc multi-hops): Involved methods must
be inline methods.
Paul Eggert [Sun, 9 Dec 2018 08:18:36 +0000 (00:18 -0800)]
Add make_vector and make_nil_vector
This makes the callers a bit easier to read, and doubtless
improves efficiency very slightly. It also simplifies
possible future changes to allow bignum indexes to buffers.
* src/alloc.c (allocate_vectorlike):
Prefer ptrdiff_t to size_t when either will do.
(make_vector): New function.
(Fmake_vector): Use it.
* src/buffer.c (syms_of_buffer):
* src/bytecode.c (syms_of_bytecode):
* src/category.c (Fmake_category_table, init_category_once):
* src/ccl.c (syms_of_ccl):
* src/character.c (syms_of_character):
* src/charset.c (Fdefine_charset_internal)
(Ffind_charset_region, Ffind_charset_string):
* src/chartab.c (copy_char_table):
* src/coding.c (Fdefine_coding_system_internal, syms_of_coding):
* src/composite.c (get_composition_id, Fcomposition_get_gstring):
* src/composite.h (LGLYPH_NEW):
* src/fns.c (concat, Flocale_info, make_hash_table):
* src/font.c (font_otf_ValueRecord, font_otf_anchor)
(build_style_table, syms_of_font):
* src/fontset.c (RFONT_DEF_NEW, fontset_find_font)
(dump_fontset, syms_of_fontset):
* src/image.c (xpm_make_color_table_v):
* src/keyboard.c (modify_event_symbol, menu_bar_items)
(parse_menu_item, parse_tool_bar_item, init_tool_bar_items)
(syms_of_keyboard):
* src/keymap.c (Fdefine_key, describe_map, describe_vector):
* src/lread.c (read_vector):
* src/macfont.m (macfont_shape):
* src/menu.c (init_menu_items):
* src/nsfns.m (ns_make_monitor_attribute_list):
* src/process.c (conv_sockaddr_to_lisp, network_interface_info):
* src/profiler.c (make_log):
* src/window.c (Fcurrent_window_configuration):
* src/xdisp.c (with_echo_area_buffer_unwind_data)
(format_mode_line_unwind_data):
* src/xfaces.c (Finternal_make_lisp_face)
(Fface_attributes_as_vector):
* src/xfns.c (x_make_monitor_attribute_list)
(Fx_display_monitor_attributes_list):
* src/xfont.c (syms_of_xfont):
* src/xselect.c (x_handle_dnd_message):
* src/xwidget.c (save_script_callback):
Prefer make_nil_vector (N) to Fmake_vector (make_fixnum (N), Qnil).
* src/callint.c (Fcall_interactively):
* src/charset.c (load_charset_map):
* src/chartab.c (Fmake_char_table, uniprop_encode_value_numeric):
* src/composite.c (get_composition_id)
* src/dispnew.c (Fframe_or_buffer_changed_p)
(syms_of_display):
* src/fns.c (make_hash_table, maybe_resize_hash_table):
* src/font.c (font_style_to_value):
* src/fontset.c (FONTSET_ADD, fontset_add):
* src/json.c (json_to_lisp):
* src/keymap.c (syms_of_keymap):
* src/lread.c (init_obarray):
* src/profiler.c (make_log, Fprofiler_cpu_log):
* src/term.c (term_get_fkeys_1):
Prefer make_vector (N, V) to Fmake_vector (make_fixnum (N), V).
* src/font.c (build_style_table):
* src/macfont.m (macfont_shape):
* src/process.c (conv_sockaddr_to_lisp, network_interface_info):
Prefer make_uninit_vector if the vector will be initialized soon.
* src/lisp.h (make_nil_vector): New function.
Eli Zaretskii [Sun, 9 Dec 2018 07:45:40 +0000 (09:45 +0200)]
Fix resolving symlinks in Eshell history file names
* lisp/eshell/em-dirs.el (eshell-write-last-dir-ring):
* lisp/eshell/em-hist.el (eshell-write-history): Don't call
file-truename with argument of nil. (Bug#33477)
* test/lisp/eshell/eshell-tests.el (with-temp-eshell): Remove
HISTFILE from the environment, to make sure the Eshell history
file is nil.
Paul Eggert [Sun, 9 Dec 2018 06:59:50 +0000 (22:59 -0800)]
* src/alloc.c (VECTOR_ELTS_MAX): Make sure it’s signed.
Paul Eggert [Sun, 9 Dec 2018 06:53:15 +0000 (22:53 -0800)]
Port VECTOR_ELTS_MAX to older GCC etc.
Problem reported by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-12/msg00182.html
* src/alloc.c (VECTOR_ELTS_MAX): Now a macro.
Needed for portability to older GCC and non-GCC.
Paul Eggert [Sun, 9 Dec 2018 00:56:32 +0000 (16:56 -0800)]
Streamline and fix vector-size checks
* src/alloc.c (VECTOR_ELTS_MAX): New constant.
(allocate_vectorlike): LEN now must be positive. Assume LEN
is in range. All callers changed.
(allocate_vector): Arg is now ptrdiff_t, not EMACS_INT.
All callers changed. Return zero vector here, not in
allocate_vectorlike.
* src/lisp.h (make_uninit_vector): Simplify.
* src/xwidget.c (webkit_js_to_lisp):
Check for overflow in ptrdiff_t calculations.
Paul Eggert [Sat, 8 Dec 2018 23:29:07 +0000 (15:29 -0800)]
Suppress WebKitGTK+ 2.21.1 diagnostics
* src/xwidget.c: Suppress deprecation warnings (Bug#33679).
Michael Heerdegen [Sat, 8 Dec 2018 21:21:23 +0000 (22:21 +0100)]
Fix quote in the copyright skeleton
Revert replacing a backquote in the "copyright" skeleton with a quote
done in "Replace insignificant backquotes" which broke the skeleton.
* lisp/emacs-lisp/copyright.el (copyright): Restore the correct
version of the skeleton that used a backquote.
Paul Eggert [Sat, 8 Dec 2018 18:47:38 +0000 (10:47 -0800)]
Fix integer overflow in oversize vectors
* src/alloc.c (allocate_vector): Fix integer overflow when
allocating very large vectors, by taking large_vector_offset
into account. Assume C99.
Paul Eggert [Sat, 8 Dec 2018 18:42:50 +0000 (10:42 -0800)]
* src/alloc.c (allocate_vectorlike): Simplify.
Eli Zaretskii [Sat, 8 Dec 2018 09:50:58 +0000 (11:50 +0200)]
; * src/xterm.c (x_update_begin): Fix whitespace.
Ari Roponen [Fri, 30 Nov 2018 12:09:09 +0000 (14:09 +0200)]
Fix scaling problem in Cairo builds
* src/xterm.c (x_begin_cr_clip) [USE_GTK]:
(x_update_begin) [USE_CAIRO && USE_GTK]: Support scaling.
(Bug#33442)
Eli Zaretskii [Sat, 8 Dec 2018 09:39:35 +0000 (11:39 +0200)]
Honor 'vc-bzr-log-switches' in 'vc-bzr-revision-table'
* lisp/vc/vc-bzr.el (vc-bzr-revision-table): Honor
'vc-bzr-log-switches'.
Steven De Herdt [Sat, 24 Nov 2018 22:57:57 +0000 (23:57 +0100)]
Honor 'vc-bzr-log-switches' in 'vc-bzr-expanded-log-entry'
* lisp/vc/vc-bzr.el (vc-bzr-expanded-log-entry): Honor
'vc-bzr-log-switches'. (Bug#33494)
Copyright-paperwork-exempt: yes
Eli Zaretskii [Sat, 8 Dec 2018 09:13:28 +0000 (11:13 +0200)]
Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
Eli Zaretskii [Sat, 8 Dec 2018 09:12:38 +0000 (11:12 +0200)]
Document that Eshell follows symlinks in history file names
* etc/NEWS: Mention that Eshell now follows symlinks in
history file names.
Philip Hudson [Sat, 24 Nov 2018 00:16:14 +0000 (00:16 +0000)]
Follow links in Eshell last-dir-ring
* lisp/eshell/em-hist.el (eshell-write-last-dir-ring):
Follow symlinks in 'eshell-last-dir-ring-file-name'.
(Bug#33477)
Philip Hudson [Wed, 21 Nov 2018 23:09:16 +0000 (23:09 +0000)]
Follow symlink in Eshell history
* lisp/eshell/em-hist.el (eshell-write-history): Follow
symlinks in 'eshell-history-file-name'. (Bug#33460)
Martin Rudalics [Sat, 8 Dec 2018 08:37:40 +0000 (09:37 +0100)]
New buffer display action alist entry 'window-min-height' (Bug#32825)
* lisp/window.el (display-buffer-below-selected): Handle
'window-min-height' action alist entry (Bug#32825).
* doc/lispref/windows.texi (Buffer Display Action Functions)
(Buffer Display Action Alists): Add documentation for
'window-min-height' action alist entries.
* etc/NEWS: Mention 'window-min-height' action alist entry.
Martin Rudalics [Sat, 8 Dec 2018 08:18:28 +0000 (09:18 +0100)]
Adjust windows' previous buffers when reverting dired buffers (Bug#33458)
* lisp/dired.el (dired-save-positions, dired-restore-positions):
For each window that showed the reverted buffer before, fix the
point positions in its list of previously shown buffers the way
these routines handle window point for all windows currently
showing the buffer (Bug#33458).
Martin Rudalics [Sat, 8 Dec 2018 08:01:23 +0000 (09:01 +0100)]
Improve how 'balance-windows' handles fixed-size windows (Bug#33254)
* lisp/window.el (balance-windows-2): When a child window has
fixed size, don't count it as resizable (Bug#33254).
Handle case where a window has no resizable child windows.
Alan Mackenzie [Fri, 7 Dec 2018 17:38:03 +0000 (17:38 +0000)]
CC Mode: Compensate for backward-sexp ignoring trailing commas after {...}
This fixes bug #32808.
* lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): New variable
comma-delimited, set when we're about to scan backward over a comma. Do not
reckon a brace block as bounding a statement when it is followed or preceded
by a comma (except when argument comma-delim is non-nil).
(c-guess-basic-syntax, CASE 9C): Call c-beginning-of-statement-1 with argument
comma-delim changed to non-nil.
Michael Albinus [Fri, 7 Dec 2018 16:21:03 +0000 (17:21 +0100)]
Refactor some Tramp functions
* lisp/net/tramp-compat.el (tramp-compat-file-local-name): New defsubst.
(tramp-compat-file-name-quoted-p, tramp-compat-file-name-quote)
(tramp-compat-file-name-unquote):
* lisp/net/tramp.el (tramp-handle-file-name-case-insensitive-p)
(tramp-handle-file-truename, tramp-get-remote-tmpdir):
* lisp/net/tramp-adb.el (tramp-adb-handle-copy-file)
(tramp-adb-handle-rename-file, tramp-adb-handle-exec-path):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
(tramp-sh-handle-exec-path, tramp-find-inline-encoding)
(tramp-get-remote-touch): Use it.
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
Use `tramp-handle-expand-file-name'.
(tramp-adb-handle-expand-file-name): Move to tramp.el.
(tramp-adb-handle-file-writable-p): Adapt docstring.
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
Use `tramp-handle-file-local-copy', `tramp-handle-file-writable-p'
and `tramp-handle-write-region'.
(tramp-gvfs-handle-file-local-copy)
(tramp-gvfs-handle-file-writable-p)
(tramp-gvfs-handle-write-region): Move to tramp.el.
* lisp/net/tramp-rclone.el: Dont't require `tramp-adb' and
`tramp-gvfs' anymore.
(tramp-rclone-file-name-handler-alist):
Use `tramp-handle-expand-file-name', `tramp-handle-file-local-copy',
`tramp-handle-file-writable-p' and `tramp-handle-write-region'.
(tramp-rclone-handle-directory-files): Simplify.
* lisp/net/tramp.el (tramp-methods): Extend docstring.
(tramp-parse-netrc): Require `netrc'.
(tramp-handle-expand-file-name, tramp-handle-file-local-copy)
(tramp-handle-file-writable-p, tramp-handle-write-region): New defuns.
Eli Zaretskii [Fri, 7 Dec 2018 15:14:32 +0000 (17:14 +0200)]
; * doc/lispref/text.texi (Special Properties): Fix wording. (Bug#33663)
Eli Zaretskii [Fri, 7 Dec 2018 08:54:57 +0000 (10:54 +0200)]
Fix the value of default-directory upon startup on MS-Windows
* src/w32.c (w32_get_current_directory): New function.
(GetCachedVolumeInformation, init_environment): Use it.
(w32_init_current_directory): New function.
* src/w32.h (w32_init_current_directory): Add prototype.
* src/emacs.c (main) [WINDOWSNT]: Use w32_init_current_directory
to get the accurate value of cwd. This is needed to record
the correct directory in emacs_wd, which is now initialized
way earlier in the startup process, when init_environment was
not yet called. For details, see the problems reported in
http://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00068.html.
Reported by Angelo Graziosi <angelo.g0@libero.it>.
Juri Linkov [Thu, 6 Dec 2018 22:38:42 +0000 (00:38 +0200)]
* lisp/vc/vc.el (vc-find-revision-no-save): Add optional arg BUFFER.
(Bug#33567)
Juri Linkov [Thu, 6 Dec 2018 22:30:51 +0000 (00:30 +0200)]
* lisp/simple.el (next-line-or-history-element): Use current-column
in all position calculations.
(previous-line-or-history-element): Idem. (Bug#33640)
Paul Eggert [Thu, 6 Dec 2018 20:59:42 +0000 (12:59 -0800)]
Mention EMACS_SOCKET_NAME, not XDG_RUNTIME_DIR.
Paul Eggert [Thu, 6 Dec 2018 19:07:18 +0000 (11:07 -0800)]
Mention unsetting XDG_RUNTIME_DIR in doc.
Paul Eggert [Thu, 6 Dec 2018 18:46:06 +0000 (10:46 -0800)]
emacsclient: avoid background chatter
* lib-src/emacsclient.c (process_grouping): New function.
(act_on_signals, main): Use it.
(main): Omit "Waiting for Emacs..." and later "\n" messages
if in background, since that messes up the screen.
Paul Eggert [Thu, 6 Dec 2018 16:54:00 +0000 (08:54 -0800)]
Fix emacsclient hang when backgrounded
Problem reported by Kaushal Modi in:
https://lists.gnu.org/r/emacs-devel/2018-12/msg00083.html
The tcdrain call replaced an fdatasync call which had no
effect on the tty, so removing it entirely shouldn’t cause
problems. The fdatasync call replaced an fsync call which
also had no effect on the tty, and the fsync call seems to be
badly-merged revenant of emacsclient’s old (circa 2004) way of
communicating to and from Emacs via FILE * streams, where
fsync was apparently needed when talking to sockets.
* lib-src/emacsclient.c [!DOS_NT]: Don’t include termios.h.
(flush_stdout): Remove. All callers removed.
(main): Do not drain the tty after "Waiting for Emacs..."
message. There should be no need to drain, and draining it
might send us a SIGTTOU. Do not fflush stdout just before
exiting, as exiting does that for us.
Paul Eggert [Thu, 6 Dec 2018 15:48:42 +0000 (07:48 -0800)]
struct image_type layout is private to image.c
* src/dispextern.h (struct image_type): Move from here ...
* src/image.c (struct image_type): ... to here.
Eli Zaretskii [Thu, 6 Dec 2018 17:35:16 +0000 (19:35 +0200)]
Avoid an error on exit in a build without threads
* lisp/simple.el (list-processes--refresh): Avoid signaling an
error in a build --without-threads. (Bug#33629)
Michael Albinus [Thu, 6 Dec 2018 15:11:27 +0000 (16:11 +0100)]
Add missing handler to tramp-rclone.el, improve robustness
* lisp/net/tramp-rclone.el (tramp-adb): Require.
(tramp-rclone-file-name-handler-alist):
Use `tramp-adb-handle-expand-file-name'.
(tramp-rclone-flush-directory-cache): New defun, derived from
`tramp-rclone-flush-mount'.
(tramp-rclone-do-copy-or-rename-file)
(tramp-rclone-handle-delete-directory)
(tramp-rclone-handle-delete-file)
(tramp-rclone-handle-make-directory): Use it.
(tramp-rclone-handle-directory-files)
(tramp-rclone-local-file-name):
Use `tramp-compat-file-name-quoted-p', `tramp-compat-file-name-quote'
and ´tramp-compat-file-name-unquote'.
(tramp-rclone-handle-file-executable-p)
(tramp-rclone-handle-file-readable-p): Cache result.
(tramp-rclone-handle-file-name-all-completions)
(tramp-rclone-mounted-p, tramp-rclone-remote-file-name)
(tramp-rclone-maybe-open-connection): Rewrite.
* test/lisp/net/tramp-tests.el (tramp--test-rclone-p): New defun.
(tramp-test05-expand-file-name-relative)
(tramp--test-special-characters): Use it.
Michael Albinus [Thu, 6 Dec 2018 15:00:05 +0000 (16:00 +0100)]
Rework Tramp wrt string-match-p, looking-at-p, save-match-data
* lisp/net/tramp.el (tramp-find-method, tramp-find-user)
(tramp-find-host, tramp-dissect-file-name, tramp-make-tramp-file-name)
(tramp-completion-make-tramp-file-name, tramp-debug-message)
(tramp-message, tramp-progress-reporter-update)
(tramp-set-completion-function)
(tramp-rfn-eshadow-update-overlay)
(tramp-find-file-name-coding-system-alist)
(tramp-file-name-for-operation)
(tramp-use-absolute-autoload-file-names)
(tramp-get-completion-methods, tramp-get-completion-user-host)
(tramp-handle-directory-files)
(tramp-handle-file-name-case-insensitive-p)
(tramp-handle-file-name-completion, tramp-handle-file-truename)
(tramp-handle-insert-directory, tramp-handle-load)
(tramp-handle-shell-command, tramp-action-yesno)
(tramp-action-yn, tramp-process-actions)
(tramp-mode-string-to-int, tramp-get-local-locale)
(tramp-local-host-p):
* lisp/net/tramp-adb.el (tramp-adb-handle-file-system-info)
(tramp-adb-handle-directory-files-and-attributes)
(tramp-adb--gnu-switches-to-ash, tramp-adb-sh-fix-ls-output)
(tramp-adb-handle-file-name-all-completions)
(tramp-adb-handle-shell-command)
(tramp-adb-handle-start-file-process):
* lisp/net/tramp-archive.el (tramp-archive-dissect-file-name):
* lisp/net/tramp-cache.el (tramp-get-hash-table)
(tramp-flush-directory-properties, tramp-flush-file-function):
* lisp/net/tramp-cmds.el (tramp-reporter-dump-variable)
(tramp-append-tramp-buffers):
* lisp/net/tramp-compat.el (tramp-compat-process-running-p):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name)
(tramp-gvfs-get-file-attributes)
(tramp-gvfs-handle-file-attributes)
(tramp-gvfs-monitor-process-filter)
(tramp-gvfs-handler-mounted-unmounted)
(tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec-entry)
(tramp-gvfs-mount-spec, tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-do-file-attributes-with-ls)
(tramp-do-file-attributes-with-stat)
(tramp-sh-handle-file-selinux-context)
(tramp-sh-handle-directory-files-and-attributes)
(tramp-do-directory-files-and-attributes-with-stat)
(tramp-sh-handle-file-name-all-completions)
(tramp-sh-handle-dired-compress-file)
(tramp-sh-handle-insert-directory)
(tramp-sh-handle-expand-file-name)
(tramp-sh-handle-start-file-process)
(tramp-sh-handle-process-file, tramp-sh-handle-write-region)
(tramp-sh-handle-file-notify-add-watch)
(tramp-sh-gio-monitor-process-filter)
(tramp-sh-gvfs-monitor-dir-process-filter)
(tramp-sh-inotifywait-process-filter)
(tramp-sh-handle-file-system-info, tramp-maybe-send-script)
(tramp-find-executable, tramp-open-shell, tramp-find-shell)
(tramp-open-connection-setup-interactive-shell)
(tramp-find-inline-encoding, tramp-call-local-coding-command)
(tramp-compute-multi-hops, tramp-maybe-open-connection)
(tramp-convert-file-attributes)
(tramp-make-copy-program-file-name, tramp-get-remote-locale)
(tramp-get-test-nt-command, tramp-get-remote-stat)
(tramp-get-inline-coding):
* lisp/net/tramp-smb.el (tramp-smb-handle-directory-files)
(tramp-smb-action-get-acl, tramp-smb-handle-file-attributes)
(tramp-smb-handle-file-name-all-completions)
(tramp-smb-handle-file-system-info)
(tramp-smb-handle-file-writable-p)
(tramp-smb-handle-insert-directory)
(tramp-smb-handle-make-directory)
(tramp-smb-handle-make-directory-internal)
(tramp-smb-handle-start-file-process, tramp-smb-get-localname)
(tramp-smb-read-file-entry): Use `string-match-p' and
`looking-at-p'. Remove superfluous `save-match-data'. Apply
`eval-when-compile' on constant concat data.
* lisp/net/tramp-compat.el (tramp-compat-file-name-quoted-p-p):
Use `string-prefix-p'.
(tramp-compat-file-name-unquote): Do not use match data.
Michael Albinus [Thu, 6 Dec 2018 14:25:22 +0000 (15:25 +0100)]
Make stronger tests for Tramp multi hops
* lisp/net/tramp.el (tramp-dissect-file-name, tramp-dissect-hop-name):
Check, that method is capable of multi hops.
* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate): Suppress check for multihops.
(tramp-test03-file-name-method-rules): Check for error if multi
hops cannot be applied.
João Távora [Thu, 6 Dec 2018 12:50:07 +0000 (12:50 +0000)]
Keep Flymake compatible with Emacs 26.1 builds --without-x
* lisp/progmodes/flymake.el (flymake-double-exclamation-mark):
Don't define if 'define-fringe-bitmap isn't fbound.
(Version): Bump to 1.0.2
Glenn Morris [Wed, 5 Dec 2018 22:29:19 +0000 (17:29 -0500)]
* admin/unidata/uvs.el (uvs-print-table-ivd): Add more header detail.
João Távora [Tue, 4 Dec 2018 23:37:39 +0000 (23:37 +0000)]
Prepare lisp/progmodes/flymake.el for distribution in GNU ELPA
* lisp/progmodes/flymake.el (Package-Requires): Require Emacs
26.1. (Version): Bump to 1.0.1
João Távora [Sat, 10 Nov 2018 12:58:08 +0000 (12:58 +0000)]
Allow custom load paths in elisp's byte-compilation Flymake
* lisp/progmodes/elisp-mode.el
(elisp-flymake-byte-compile-load-path): New variable.
(elisp-flymake-byte-compile): Use new variable
Stefan Monnier [Tue, 4 Dec 2018 23:15:44 +0000 (18:15 -0500)]
* lisp/emacs-lisp/eldoc.el: Let the user interrupt the search
(eldoc-print-current-symbol-info): Use while-no-input and non-essential.
Eli Zaretskii [Tue, 4 Dec 2018 18:27:20 +0000 (20:27 +0200)]
Support IBM038 (a.k.a. "EBCDIC-INT") encoding
* lisp/international/mule-conf.el (ibm038): New charset.
(ebcdic-int, cp038): Alias charsets of ibm038.
* lisp/language/english.el (ibm038): New coding-system.
(ebcdic-int, cp038): Alias coding-systems of ibm038.
(Bug#33612)
* etc/NEWS: Announce the new coding system ibm038.
Glenn Morris [Tue, 4 Dec 2018 17:54:01 +0000 (12:54 -0500)]
Skip an autorevert test on hydra.nixos.org (bug#32645)
* test/lisp/autorevert-tests.el
(auto-revert-test02-auto-revert-deleted-file): Skip on hydra.
Stefan Monnier [Tue, 4 Dec 2018 17:39:47 +0000 (12:39 -0500)]
* lisp/shell.el (shell--parse-pcomplete-arguments): Stop at semi-colon
* test/lisp/shell-tests.el (shell-tests-completion-before-semi):
New corresponding test.
Juri Linkov [Tue, 4 Dec 2018 00:41:54 +0000 (02:41 +0200)]
* lisp/isearch.el (isearch-yank-on-move): New defcustom
with shift-move related options extracted from `search-exit-option'.
(isearch-pre-command-hook): Rename search-exit-option to
isearch-yank-on-move in shift-move related places.
(isearch-post-command-hook): Check for isearch-pre-move-point
instead of search-exit-option. (Bug#15839)
* doc/emacs/search.texi (Not Exiting Isearch): Rename
search-exit-option to isearch-yank-on-move.
* lisp/menu-bar.el (menu-bar-i-search-menu): Add more isearch commands.
Juri Linkov [Tue, 4 Dec 2018 00:24:29 +0000 (02:24 +0200)]
* lisp/isearch.el (isearch-allow-scroll): New option `unlimited'.
(isearch-pre-command-hook): Call isearch-pre-scroll-point unless
isearch-allow-scroll is 'unlimited'.
(isearch-post-command-hook): Use `when' instead of `cond'.
Call isearch-lazy-highlight-new-loop when isearch-allow-scroll is
'unlimited'. (Bug#15839)
Juri Linkov [Tue, 4 Dec 2018 00:15:37 +0000 (02:15 +0200)]
* lisp/vc/vc-git.el (vc-git-stash): Call vc-dir-marked-files only
in vc-dir-mode.
Paul Eggert [Mon, 3 Dec 2018 16:06:46 +0000 (08:06 -0800)]
emacsclient: fix typo on recent socket-leak change
This ports to POSIXish platforms like macOS that lack SOCK_CLOEXEC.
Fix suggested by Eli Zaretskii in:
https://lists.gnu.org/r/emacs-devel/2018-12/msg00055.html
* lib-src/emacsclient.c (set_local_socket):
Don’t use SOCK_CLOEXEC; that’s cloexec_socket’s job.
Eli Zaretskii [Mon, 3 Dec 2018 10:29:34 +0000 (12:29 +0200)]
Fix WINDOWSNT/DOS_NT build
Recent changes in sysdep.c and emacsclient unnecessarily
removed useful code from DOS_NT builds. This changeset
reinstates that code.
* nt/inc/ms-w32.h (tcdrain): Redirect to _commit.
(fdatasync): No need to redirect anymore.
* lib-src/emacsclient.c (flush_stdout): Don't avoid calling
tcdrain on DOS_NT platforms.
* src/sysdep.c (reset_sys_modes): Don't ifdef away the call to
tcdrain on DOS_NT platforms.
Martin Rudalics [Mon, 3 Dec 2018 08:35:33 +0000 (09:35 +0100)]
A few further fixes of window internals description
* doc/lispref/internals.texi (Window Internals): Add a few
more items and clarify description of some others.
Paul Eggert [Mon, 3 Dec 2018 07:51:11 +0000 (23:51 -0800)]
emacsclient: don’t leak socket to child processes
* lib-src/emacsclient.c [!WINDOWSNT]: Include fcntl.h.
(cloexec_socket): New function.
(set_tcp_socket, set_local_socket): Use it.
Paul Eggert [Mon, 3 Dec 2018 07:11:09 +0000 (23:11 -0800)]
Use tcdrain, not fdatasync, to drain ttys
fdatasync is for storage devices, not ttys.
* admin/merge-gnulib (GNULIB_MODULES): Remove fdatasync.
* lib/fdatasync.c, m4/fdatasync.m4: Remove.
* lib-src/Makefile.in (LIB_FDATASYNC):
* src/Makefile.in (LIB_FDATASYNC):
Remove. All uses removed.
* lib-src/emacsclient.c [!DOS_NT]:
Include <termios.h>, for tcdrain.
* lib-src/emacsclient.c (flush_stdout):
* src/sysdep.c (reset_sys_modes): On ttys, use tcdrain instead
of fdatasync (except don’t use either function if DOS_NT).
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
Paul Eggert [Mon, 3 Dec 2018 06:49:09 +0000 (22:49 -0800)]
Update from Gnulib
This incorporates:
2018-11-30 memrchr: port better to clang
2018-11-21 mktime: add libc-config dependency
* build-aux/config.guess, build-aux/config.sub, lib/memrchr.c:
Copy from Gnulib.
* m4/gnulib-comp.m4: Regenerate.
Paul Eggert [Mon, 3 Dec 2018 06:32:28 +0000 (22:32 -0800)]
emacsclient: fix symlink/socket race
* lib-src/emacsclient.c (socket_status): New arg UID.
All uses changed.
(set_local_socket): Don’t create the unbound socket unless the
initial sanity checks on the socket file succeed; this
simplifies cleaning it up. Check socket ownership again
after connecting, to fix a race (Bug#33366).
Glenn Morris [Sun, 2 Dec 2018 18:32:25 +0000 (10:32 -0800)]
Merge from origin/emacs-26
745c9c0 (origin/emacs-26) Revert "Revert "Fix infloop in GC mark_kboa...
c418c85 Revert "Fix infloop in GC mark_kboards"
8fa0d96 * lisp/emacs-lisp/subr-x.el (if-let, when-let): Doc fix: acti...
Glenn Morris [Sun, 2 Dec 2018 18:32:25 +0000 (10:32 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
af914fc Fix infloop in GC mark_kboards
Glenn Morris [Sun, 2 Dec 2018 18:32:24 +0000 (10:32 -0800)]
Merge from origin/emacs-26
317b354 ; Add notes about cross-compiling macOS versions
4b176eb Fix macOS run-time feature check
c03574b * etc/NEWS-*: Fix capitalization of "Emacs"
# Conflicts:
# etc/NEWS
Glenn Morris [Sun, 2 Dec 2018 18:32:24 +0000 (10:32 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
42320cc ; Auto-commit of loaddefs files.
Glenn Morris [Sun, 2 Dec 2018 18:32:24 +0000 (10:32 -0800)]
Merge from origin/emacs-26
e06562c Fix "M-x man" when there's no 'man' program on PATH
Glenn Morris [Sun, 2 Dec 2018 18:32:24 +0000 (10:32 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
7ecf49b Fix core dump in dbus-message-internal
Glenn Morris [Sun, 2 Dec 2018 18:32:23 +0000 (10:32 -0800)]
Merge from origin/emacs-26
cc3ad9a ; * CONTRIBUTE: Clarify rules for committing to release branc...
a89dbe2 * doc/misc/dbus.texi (Type Conversion): Fix typo. (Bug#33551)
03ee726 ; Add comment to `customize-package-emacs-version-alist'
bce1d1a Improve documentation of gdb-mi.el
Glenn Morris [Sun, 2 Dec 2018 18:32:23 +0000 (10:32 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
809989f LDAP: Set process-connection-type to t on Darwin
Eli Zaretskii [Sun, 2 Dec 2018 18:04:05 +0000 (20:04 +0200)]
Revert "Revert "Fix infloop in GC mark_kboards""
This reverts commit
c418c85617babbe7b63730fefb71e2c87a0141af.
This reinstates the original fix, as it had nothing to do
with the behavior reported in bug#33571, which seems to be
the expected behavior.