1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-27 16:51:06 -07:00
Commit graph

139614 commits

Author SHA1 Message Date
Juri Linkov
b31a966e88 * lisp/image-mode.el: Resize image on window resizing (bug#32672)
* lisp/image-mode.el (image--window-change): New function.
(image--window-change-function): New variable.
(image-mode--setup-mode): Add buffer-local hook image--window-change
to window-size-change-functions, window-state-change-functions,
window-selection-change-functions.
2019-11-27 23:52:29 +02:00
Eli Zaretskii
2435f811b9 Make some anonymous faces extend to EOL
* lisp/vc/log-edit.el (log-edit-font-lock-keywords):
* lisp/mpc.el (mpc-separator):
* lisp/help.el (describe-key):
* lisp/help-fns.el (describe-symbol): Make the anonymous faces
extend to EOL.
2019-11-27 18:19:30 +02:00
Eli Zaretskii
39b3bc0082 ; Fix recent change in w32.c
* src/w32.c (network_interface_list): Correct an embarrassing
typo and cleanup the code.
2019-11-27 18:16:37 +02:00
Mattias Engdegård
4eb7db5d4b Mouse rectangular region selection (bug#38013)
Make it possible to select a rectangular region using the mouse.
The standard binding is C-M-mouse-1.

* lisp/mouse.el (mouse-scroll-subr): Add ADJUST argument.
(mouse-drag-region-rectangle): New.
* lisp/rect.el (rectangle--reset-point-crutches): New.
(rectangle--reset-crutches): Use 'rectangle--reset-point-crutches'.
* src/xdisp.c (remember_mouse_glyph, syms_of_xdisp):
Add 'mouse-fine-grained-tracking'.
* doc/lispref/commands.texi (Motion Events):
Document 'mouse-fine-grained-tracking'.
* doc/emacs/frames.texi (Mouse Commands):
* doc/emacs/killing.texi (Rectangles):
* etc/NEWS: Document rectangular selection with the mouse.
2019-11-27 13:40:29 +01:00
Andrii Kolomoiets
e7b4c248a6 Call vc-setup-buffer in vc-hg-log-incoming and vc-hg-log-outgoing
* lisp/vc/vc-hg.el (vc-hg-log-incoming, vc-hg-log-outgoing):
Call vc-setup-buffer.
2019-11-27 14:17:03 +02:00
Lars Ingebrigtsen
99532a87bc Fix documentation of eieio-class-name
* doc/misc/eieio.texi (Predicates): Update the documentation of
eieio-class-name to say what it really returns (bug#38365).
2019-11-27 13:12:39 +01:00
Lars Ingebrigtsen
fd63880540 Make message-allow-no-recipients 'always work
* lisp/gnus/message.el (message-send): Make
message-allow-no-recipients 'always work.
2019-11-27 12:44:58 +01:00
Mattias Engdegård
215f678c72 Fine-grained NS modifier key settings (bug#38296)
For the ns-KEY-modifier and ns-right-KEY-modifier variables, KEY
being 'control', 'command', 'alternate' and 'function', allow
values on the form (:ordinary SYMBOL :function :SYMBOL :mouse SYMBOL),
so that the key can be used for different modifiers (or none) in
different contexts.  This is particularly useful for using the macOS
Option key for extended character entry while still using it as an
Emacs modifier for function keys and mouse clicks.

* src/nsterm.m (mod_of_kind, right_mod, nil_or_none): Helper functions.
(EV_MODIFIERS2): Add KIND argument.
(EV_MODIFIERS): Adapt call to EV_MODIFIERS2.
(ns_get_shifted_character): Use correct event kind for modifiers.
(ns-alternate-modifier, ns-right-alternate-modifier)
(ns-command-modifier, ns-right-command-modifier)
(ns-control-modifier, ns-right-control-modifier)
(ns-function-modifier): Rewrite doc strings for new data format.
(QCordinary, QCfunction, QCmouse): Define symbols.
* lisp/cus-start.el: Conform to new data types.
* doc/emacs/macos.texi (Mac / GNUstep Basics)
(Mac / GNUstep Customization): Improved documentation.
* etc/NEWS: Mention the change.
2019-11-27 11:14:55 +01:00
Juri Linkov
aa89c84e00 message uses minibuffer-message in the active minibuffer (bug#17272 bug#19064)
* doc/lispref/display.texi (Displaying Messages): Explain the
behavior of using minibuffer-message if the minibuffer is active.

* src/editfns.c (Fmessage_in_echo_area): New function with body
copied from Fmessage.
(Fmessage): Call minibuffer-message in the active minibuffer,
otherwise call Fmessage_in_echo_area.
(message-in-echo-area): New variable.

* lisp/isearch.el (isearch--momentary-message, isearch-message):
* lisp/minibuffer.el (minibuffer-message, minibuffer-completion-help):
Use 'message-in-echo-area' instead of 'message' where necessary.

* lisp/autorevert.el (auto-revert-handler):
* lisp/man.el (Man-bgproc-sentinel):
* lisp/subr.el (do-after-load-evaluation):
Revert recent changes that replaced 'message' with 'minibuffer-message'.
This is not needed anymore since 'message' uses 'minibuffer-message'
in the active minibuffer.
2019-11-27 01:43:49 +02:00
Juri Linkov
b3c0fb21bd Allow recursive minibuffers for yes-or-no-p and y-or-n-p (bug#17272 bug#19064)
* lisp/subr.el (y-or-n-p): Let-bind enable-recursive-minibuffers to t.

* src/fns.c (Fyes_or_no_p): Specbind Qenable_recursive_minibuffers to Qt.
2019-11-27 01:18:17 +02:00
Juri Linkov
6960a7543c * lisp/tab-bar.el (display-buffer-in-tab): New function (bug#38354) 2019-11-27 00:29:31 +02:00
Paul Eggert
cffa5703b9 etags: remove some arbitrary limits
etags had undefined behavior if input files, lines, tags, etc.,
had more than INT_MAX bytes.  Clean up the usage of integer types
to fix the overflow errors I found.
* admin/merge-gnulib (GNULIB_MODULES): Add mempcpy.
* lib-src/etags.c: Include inttypes.h, intprops.h.
(memcpyz): New function.  Use it to simplify several occurrences
of memcpy followed by storing a trailing '\0'.
(xnew): Use xnmalloc, to catch overflow on integer multiplication.
(xrnew): Change last arg to multiplier.  The type is not needed.
All callers changed.
(node, lineno, charno, linecharno, invalidcharno, make_tag):
(pfnote, add_node, number_len, C_symtype, lbz, Makefile_targets)
(readline):
Use intmax_t for line numbers and character positions, instead of
int or long.
(linebuffer, make_tag, pfnote, total_size_of_entries, put_entry)
(in_word_set, C_symtype, token, cstack, pushclass_above):
(popclass_above, write_classname, consider_token, C_entries)
(Ruby_functions, Makefile_targets, Lua_functions, TeX_commands)
(TeX_decode_env, erlang_func, erlang_attribute, erlang_atom)
(substitute, regex_tag_multiline, nocase_tail, readline_interval)
(readline, savenstr, concat, etags_getcwd, relative_filename)
(linebuffer_setlen):
Use ptrdiff_t for object sizes, instead of int or long or unsigned
or size_t.
(write_classname, C_entries):
Avoid sprintf, as the result could exceed INT_MAX bytes
and then behavior goes haywire.
(main): Use int, instead of unsigned, for argv counts.
(get_language_from_filename): Use bool for boolean.
(Ruby_functions): Prefer strcpy to memcpy when copying "=".
(linebuffer_setlen): Use ‘if’ instead of ‘while’.
(memory_full, xnmalloc, xnrealloc): New functions.
(xmalloc): Use memory_full, and take a ptrdiff_t instead of a size_t.
(xrealloc): Remove; no longer needed.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/mempcpy.c, m4/mempcpy.m4: New files, copied from Gnulib.
2019-11-26 13:57:00 -08:00
Juanma Barranquero
75b41a38dd Fix previous change to (next|previous)-buffer
* lisp/window.el (next-buffer, previous-buffer): If no other
buffer is available, signal 'user-error' only when called
interactively.
2019-11-26 22:35:04 +01:00
Paul Eggert
1b9dbca826 Update from Gnulib
This incorporates:
2019-11-24 Fix errors in C++ mode on mingw
2019-11-24 time_r: Fix for mingw (regression from 2019-11-16)
2019-11-24 sys_time: Fix errors in C++ mode on mingw
2019-11-22 intprops: INT_MULTIPLY_WRAPV speedup for GCC 8.4+
2019-11-21 Disable many _GL_CXXALIASWARN on non-glibc
2019-11-21 Fix various errors in _GL_CXXALIAS_SYS invocations
2019-11-19 intprops: INT_MULTIPLY_WRAPV speedup for GCC 9.3+
2019-11-18 stdint: Define [u]intptr_t correctly on 64-bit native Windows
2019-11-18 stdint: Fix value of WINT_MAX when we override wint_t
2019-11-18 stdint: Avoid "conflicting types" error on mingw 5.22
2019-11-16 time_r: Fix for mingw
2019-11-06 regex: now back in sync with glibc
* lib/intprops.h, lib/regexec.c, lib/signal.in.h:
* lib/stdint.in.h, lib/stdio.in.h, lib/stdlib.in.h:
* lib/string.in.h, lib/sys_select.in.h, lib/sys_time.in.h:
* lib/time.in.h, lib/unistd.in.h, m4/time_r.m4:
Copy from Gnulib.
2019-11-26 13:15:41 -08:00
Stefan Monnier
50b52390ee * lisp/subr.el (do-after-load-evaluation): Handle batch mode as well 2019-11-26 13:58:39 -05:00
Robert Pluim
95e218af14 Use 127.0.0.1 in nsm-tests
Winsock doesn't like "127.1"

* test/lisp/net/nsm-tests.el (nsm-check-local-subnet-ipv4): Spell
numeric localhost as "127.0.0.1" instead of "127.1".
2019-11-26 19:27:06 +01:00
Stefan Monnier
384d1c47ce * test/lisp/minibuffer-tests.el (completion-table-test-quoting): New test
* test/data/minibuffer-test-cttq$tion: New file-name test data.
2019-11-26 13:18:18 -05:00
Eli Zaretskii
d4515f3cab Support ':extend' in faces defined by list of key/value pairs
* src/xfaces.c: Update and improve commentary at the beginning
of the file.
(face_attr_sym): New static array.
(init_xfaces): Initialize 'face_attr_sym'.
(merge_face_ref): Handle the :extend attribute in faces
specified as lists of key/value pairs.  (Bug#37774)
2019-11-26 19:29:45 +02:00
Eli Zaretskii
094eb04ce5 Fix MS-Windows build with mingw.org's MinGW
mingw.org's MinGW by default targets Windows 9X, so
_WIN32_WINNT is set to a value that bypasses declarations
in system headers we need to compile network_interface_list.
Also, the code needed a workaround for Windows XP, where
some functionality is missing from the GetAdaptersAddresses
API.

* src/w32.c (_WIN32_WINNT): Define to 0x0501, if the value is
lower, temporarily while processing iphlpapi.h.
(address_prefix_match): New helper function.
(network_interface_list): Work around the fact that the
OnLinkPrefixLength member of IP_ADAPTER_UNICAST_ADDRESS is not
available when _WIN32_WINNT < 0x0600.  On Windows XP use
special code that calls address_prefix_match to compute the
network prefix length.
2019-11-26 19:13:12 +02:00
Stefan Monnier
52eca2d3bd * lisp/progmodes/asm-mode.el (asm-mode-map): Obey electric-indent-mode 2019-11-26 09:05:36 -05:00
Juanma Barranquero
e495dbea70 (next|previous)-buffer no longer fail silently (bug#38384)
* lisp/window.el (next-buffer, previous-buffer):
Signal 'user-error' if there is no buffer to switch to.

* etc/NEWS: Document it.
2019-11-26 15:03:57 +01:00
Juanma Barranquero
90a7cd073b lisp/auth-source.el: Depend on cl-lib unconditionally
A change in 2016-04-24 introduced a run-time dependency on cl-subseq.
2019-11-26 14:00:25 +01:00
Juanma Barranquero
db2d6398a5 lisp/auth-source-pass.el: Require cl-lib unconditionally
Changes in 2019-05-05 and 2019-05-14 introduced run-time dependencies
on cl-maplist and cl-remove-if-not.
2019-11-26 12:55:29 +01:00
Martin Rudalics
261b060f12 2019-11-26 Martin Rudalics <rudalics@gmx.at>
* lisp/window.el (switch-to-visible-buffer): Declare obsolete.
(switch-to-prev-buffer-skip): New option.
(switch-to-prev-buffer, switch-to-next-buffer): Obey
'switch-to-prev-buffer-skip'.
* doc/lispref/windows.texi (Window History): Remove
description of 'switch-to-visible-buffer'.  Describe new
option 'switch-to-prev-buffer-skip'
* etc/NEWS: Mention switch from 'switch-to-visible-buffer' to
'switch-to-prev-buffer-skip'.
2019-11-26 10:13:12 +01:00
Alex Murray
b006095bc9 Fix auth-source password lookup
* lisp/net/network-stream.el
(network-stream-certificate): Ensure :port is specified as a string to
'auth-source-search' (Bug#38371).

Copyright-paperwork-exempt: yes
2019-11-26 09:23:45 +01:00
Robert Pluim
650a514e99 Extend network-interface-list to return IPv6 and network info
Bug#38218

* src/process.c (Fnetwork_interface_list): Extend argument list to
allow requesting full network info and/or IPv4/IPv6 info.
(network_interface_list) [HAVE_GETIFADDRS]: Use getifaddrs to retrieve
interface IP addresses.

* src/process.h: Update prototype of network_interface_list.

* src/w32.c (g_b_init_get_adapters_addresses): New init flag.
(globals_of_w32): Initialize it.
(GetAdaptersAddresses_Proc): New function typedef.
(get_adapters_addresses): New wrapper function.
(init_winsock): Load htonl and ntohl.
(sys_htonl, sys_ntohl): New wrapper functions.
(network_interface_list): Implement in terms of
get_adapters_addresses.

* nt/inc/sys/socket.h: Add sys_htonl and sys_ntohl prototypes.

* etc/NEWS: Announce IPv4/IPv6 changes in network-interface-list.

* doc/lispref/processes.texi (Misc Network): Document updated arglist
and return values for network-interface-list.
2019-11-26 08:46:13 +01:00
Lars Ingebrigtsen
5c3d0cf791 Fix previous message.el point-restoring fix
* lisp/gnus/message.el (message-send-and-exit): Restore window
point before burying buffer so we actually bury the buffer.
2019-11-26 02:40:59 +01:00
Lars Ingebrigtsen
c97c7bb222 Remove outdated documentation
* doc/misc/eieio.texi (Predicates): Remove documentation of
same-class-fast-p, which was removed some years back (bug#38362).
2019-11-26 02:36:15 +01:00
João Távora
8f89fdf7b0 Fix test failures of test/lisp/auth-source-pass-tests.el
Failures introduced by recent "Make auth-source-pass-search understand
port lists", commit 92fda5a7f9.

* lisp/auth-source-pass.el
(auth-source-pass--generate-entry-suffixes): Fix test failures.
2019-11-25 22:45:54 +00:00
Eli Zaretskii
4cb582321a ; * etc/NEWS: Elaborate the entry about ':extend' face attribute. 2019-11-25 20:58:40 +02:00
Filipp Gunbin
1b83228cc7 Correct small misprint in defcustom's docstring
* lisp/custom.el (defcustom): Correct misprint in docstring.
2019-11-25 21:12:46 +03:00
Eli Zaretskii
19aecd340b Fix face merging when some have :extend non-nil and some are inherited
* src/xfaces.c (face_inherited_attr): New function.
(merge_named_face): Call 'face_inherited_attr' when testing
whether a face that inherits from another fits the filtering
criteria specified by ATTR_FILTER.
(merge_face_vectors): Revert the changes made in this function
for filtering by ATTR_FILTER, and remove that argument as
well.  These tests are now completely done by the caller, see
'merge_named_face'.  (Bug#37774)
2019-11-25 17:52:24 +02:00
Robert Pluim
2d12d4d2d4 Handle auth-source-search failures in open-network-stream
If the user cancels the gpg decryption pop-up, auth-source-search
fails *and* epa pops up an error buffer.  Fix epa to allow suppressing
that, and ignore errors returned from auth-source-search.

* lisp/epa.el (epa-suppress-error-buffer): New defvar.  Bind non-nil
to stop epa popping up an error buffer.

* lisp/net/network-stream.el: require epa when byte-compiling.
(network-stream-certificate): ignore errors when calling
auth-source-search, and suppress the epa error buffer.
2019-11-25 16:00:09 +01:00
Paul Eggert
5a3e96b17c Add eassert check for bad default face
* src/xdisp.c (append_space_for_newline): Add an eassert check
that default_face is not null, by calling FACE_FROM_ID instead of
FACE_FROM_ID_OR_NULL.  Initialize a local only if needed.
2019-11-23 15:48:46 -08:00
Paul Eggert
603a7c8a84 Port gnutls.c to --enable-gcc-warnings --without-gnutls
* src/gnutls.c: Move the "#ifdef HAVE_GNUTLS" earlier, so
that "./configure --enable-gcc-warnings --without-gnutls"
does not complain about macros being defined but never used.
Indent "#" directives more consistently.
2019-11-23 15:48:45 -08:00
Juanma Barranquero
c2bd42833f Rework previous fix to bug#38222
* lisp/help.el (help--doc-without-fn): Remove.
(describe-mode): Use help-split-fundoc instead.
2019-11-23 23:32:33 +01:00
Juanma Barranquero
6f3ff47c52 Make help-split-fundoc more flexible about what returns
* lisp/help.el (help-split-fundoc): New arg SECTION to return
only the usage or doc parts of the docstring, or both even if
there is no usage.

* test/lisp/help-tests.el: New file.
2019-11-23 23:29:53 +01:00
Juri Linkov
4b5d04be44 Use new macro debounce-reduce to make mouse scaling of images more responsive
* lisp/emacs-lisp/timer.el (debounce, debounce-reduce): New macros.

* lisp/image.el (image-increase-size, image-decrease-size):
Use funcall to call image--change-size-function.
(image--change-size-function): Move code from defun of
image--change-size to defvar that has the value of lambda
returned from debounce-reduce.  (Bug#38187)
2019-11-24 00:22:46 +02:00
Robert Pluim
8934762bb3 Default network-stream-use-client-certificates to nil
* lisp/net/network-stream.el (network-stream-use-client-certificates):
Default to nil.
(open-network-stream): Adapt description to new default of
network-stream-use-client-certificates.

* etc/NEWS: network-stream-use-client-certificates defaults to nil
now.

* doc/lispref/processes.texi (Network): Flip
network-stream-use-client-certificates description.

* doc/misc/auth.texi (Help for users): Mention
network-stream-use-client-certificates.
2019-11-23 18:51:08 +01:00
Robert Pluim
a27c8929f2 Have what-cursor-position optionally show character name
* lisp/simple.el (what-cursor-show-names): New defcustom, default nil.
(what-cursor-position): Show character names if what-cursor-show-names
is non-nil.

* doc/emacs/basic.texi (Position Info): Add what-cursor-show-names
description.

* etc/NEWS: Announce what-cursor-show-names.
2019-11-23 18:51:07 +01:00
Christopher Schmidt
b9e99ab5ac Always expand "total" in dired
* lisp/files.el (insert-directory): Always replace "total" with
"total used in directory", even when we don't have free disk space
(bug#13191).  This makes the display more consistent.
2019-11-23 15:45:56 +01:00
Michael Heerdegen
311ca036f4 Fix edebug instrumentation removing from advised functions
* lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Handle
advised functions correctly.
2019-11-23 14:20:50 +01:00
Eli Zaretskii
be779cf7b4 Improve indexing of modifier keys
* doc/emacs/commands.texi (User Input): Add index entry for
the Alt key serving as Meta.
* doc/emacs/custom.texi (Modifier Keys): Add index entries for
Alt, Super, and Hyper modifier keys.  (Bug#38315)
2019-11-23 13:37:28 +02:00
Eli Zaretskii
1265e94711 Fix cursor display at EOL before extended face
* src/xdisp.c (extend_face_to_end_of_line): Make sure the
character position of the stretch glyph inserted to extend the
face is zero, as various other parts of the display code rely
on that.  (Bug#38330)
2019-11-23 12:43:49 +02:00
Eli Zaretskii
c26556bd18 Fix and speed up en/decoding of UTF-8 strings
* src/coding.c (get_char_bytes, encode_string_utf_8)
(decode_string_utf_8): Fix commentary.
(encode_string_utf_8): Return the original ASCII string only
if NOCOPY is non-zero.
(decode_string_utf_8): Accept 2 additional arguments STR and
STR_LEN, which allow to pass the input text as a C string.
(make_string_from_utf8): Delegate the job to decode_string_utf_8.
* src/coding.h: Update the prototype of decode_string_utf_8.
* src/json.c (json_encode): Call encode_string_utf_8.
2019-11-23 11:27:43 +02:00
João Távora
6d4d00c634 * lisp/minibuffer.el (completion-flex-nospace): Default to t. 2019-11-23 00:30:49 +00:00
Juanma Barranquero
b7d4c5d1d1 help-follow-symbol now complains if no symbol found (bug#38248)
* lisp/help-mode.el (help-follow-symbol): Signal 'user-error' if
there's no symbol at POS.

* etc/NEWS: Document it.
2019-11-22 21:10:49 +01:00
Filipp Gunbin
0b4eec3169 Check gnus-mailing-list-groups in turn-on-gnus-mailing-list-mode
* lisp/gnus/gnus-ml.el (turn-on-gnus-mailing-list-mode): Check also
gnus-mailing-list-groups variable.
2019-11-22 20:49:02 +03:00
Filipp Gunbin
6df8900af6 Make gnus-mailing-list-archive recognize https
* /lisp/gnus/gnus-ml.el (gnus-mailing-list-archive): Accept https in
regexp.
2019-11-22 20:37:27 +03:00
Filipp Gunbin
d3f0cf7404 Unify docstrings of Gnus summary's copy/move/crosspost article functions
* lisp/gnus/gnus-sum.el (gnus-summary-copy-article)
(gnus-summary-crosspost-article): Make docstrings refer to
gnus-summary-move-article.
2019-11-22 19:24:47 +03:00