1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-04-28 09:14:50 -07:00
Commit graph

137134 commits

Author SHA1 Message Date
Alexander Gramiak
516761576c Add Zstandard compression support for Tramp
* lisp/net/tramp-archive.el (tramp-archive-suffixes)
(tramp-archive-compression-suffixes): Add zstd compression suffixes.
* lisp/net/tramp-sh.el (tramp-inline-compress-commands): Add
zstd (de)compression commands.
2019-06-24 16:08:12 +02:00
Alexander Gramiak
c32cc62779 Add Zstandard compression support for dired
* lisp/dired-aux.el (dired-compress-file-suffixes): Add suffixes for
zstd compressed tarballs and other files.
(dired-compress-file): Treat options found in
`dired-compress-file-suffixes' as arguments instead of part of the
program name.
2019-06-24 16:08:12 +02:00
Alexander Gramiak
f9afe8a97e Add Zstandard compression support for etags
* lib-src/etags.c: (compressors): Add zstd support.
(print_language_names): Report zstd support.
* doc/man/etags.1: Update doc.
2019-06-24 16:08:12 +02:00
Daniel Colascione
65d45def8d Fix pdumper executable-finding code
* src/emacs.c:
(load_pdump_find_executable): New function.
(load_pdump): Use it.
2019-06-24 06:53:30 -07:00
Damien Cassou
157fced053
* doc/misc/auth.texi (The Unix password store): Complete rewrite 2019-06-24 09:15:41 +02:00
Damien Cassou
34f01eb88f
* etc/NEWS: Describe changes to auth-source-pass 2019-06-24 09:15:41 +02:00
Damien Cassou
e6fc02f836
* lisp/auth-source-pass.el: Version 5.0.0 2019-06-24 09:15:41 +02:00
Damien Cassou
7022e3fde6
Refactoring of auth-source-pass
* lisp/auth-source-pass.el (auth-source-pass--find-match): Refactor by
moving some code to auth-source-pass--disambiguate.
(auth-source-pass--disambiguate)
(auth-source-pass--entries-matching-suffix): New function.
(auth-source-pass--find-match-unambiguous)
(auth-source-pass--select-from-entries)
(auth-source-pass--entry-reducer): Refactor to simplify and improve
logging.
(auth-source-pass--matching-entries)
(auth-source-pass--accumulate-matches): Remove.
* test/lisp/auth-source-pass-tests.el: Complete rewrite to facilitate
maintenance.
(auth-source-pass--have-message-containing): Remove.
(auth-source-pass--have-message-matching)
(auth-source-pass--explain--have-message-matching)
(auth-source-pass--explain-match-entry-p)
(auth-source-pass--includes-sorted-entries)
(auth-source-pass--explain-includes-sorted-entries)
(auth-source-pass--explain-match-any-entry-p)
(auth-source-pass--matching-entries)
(auth-source-pass-match-entry-p)
(auth-source-pass-match-any-entry-p): New function.
2019-06-24 09:15:41 +02:00
Keith Amidon
736f78bb1a
* lisp/auth-source-pass.el: Add Keith Amidon to authors 2019-06-24 09:15:41 +02:00
Keith Amidon
0a580c187d
Minimize entry parsing in auth-source-pass
Prior to this commit, while searching for the most applicable entry
password-store entries were decrypted and parsed to ensure they were
valid.  The entries were parsed in the order they were found on the
filesystem and all applicable entries would be decrypted and parsed,
which varied based on the contents of the password-store and the entry
to be found.

This is fine when the GPG key is cached and each entry can be
decrypted without user interaction.  However, for security some people
have their GPG on a hardware token like a Yubikey setup so that they
have to touch a sensor on the toke for every cryptographic operation,
in which case it becomes inconvenient as each attempt to find an entry
requires a variable number of touches of the hardware token.

The implementation already assumes that names which contain more of
the information in the search key should be preferred so there is an
ordering of preference of applicable entries.  If the decrypt and
parsing is removed from the initial identification of applicable
entries in the store then in most cases a single decrypt and parse of
the most preferred entry will suffice, improving the experience for
hardware token users that require interaction with the token.

This commit implements that strategy.  It is in spirit a refactor of
the existing code.

* lisp/auth-source-pass.el (auth-source-pass--matching-entries): New
function, generate an ordered list of regular expression matchers for
all possible names that could be in the password-store for the entry
to be found and then makes a pass over the password-store entry names
accumulating the matching entries in a list after the regexp that
matched.  This implementation ensures the password-store entry list
still only has to be scanned once.
(auth-source-pass--find-match-unambiguous): Use it to obtain candidate
entries and then parse them one by one until an entry containing the
desired information is located.  When complete, return the parsed data
of the entry instead of the entry name so that the information can be
used directly to construct the auth-source response.
(auth-source-pass--build-result): Update accordingly.
(auth-source-pass--find-match): Update docstring accordingly.
(auth-source-pass--select-one-entry)
(auth-source-pass--entry-valid-p)
(auth-source-pass--find-all-by-entry-name)
(auth-source-pass--find-one-by-entry-name): Remove.
(auth-source-pass--select-from-entries)
(auth-source-pass--accumulate-matches)
(auth-source-pass--entry-reducer)
(auth-source-pass--generate-entry-suffixes)
(auth-source-pass--domains)
(auth-source-pass--name-port-user-suffixes): New functions.

* test/lisp/auth-source-pass-tests.el: One test case was added to the
test suite to verify that only the minimal number of entries are
parsed in common cases.  The
auth-source-pass-only-return-entries-that-can-be-open test case had to
be re-implemented because the function it was used eliminated as the
functionality is provided elsewhere.  All the other fairly substantial
changes to the test suite are the result of mechanical changes that
were required to adapt to auth-source-pass--find-match returning the
data from a parsed password-store entry instead of the entry name.
2019-06-24 09:15:40 +02:00
Keith Amidon
57e763a0a0
Split out the attribute retrieval form auth-source-pass-get
Eliminate the need to repeatedly retrieve and parse the data for the
entry.  This is generally a good thing since it eliminates repetitions
of the same crypto and parsing operations.  It is especially valuable
when protecting an entry with a yubikey with touch required for crypto
operations as it eliminates the need to touch the yubikey sensor for
each attribute retrieved.

* lisp/auth-source-pass.el (auth-source-pass-get): Extract some code to
`auth-source-pass--get-attr'.
(auth-source-pass--get-attr): New function to get a field value from a
parsed entry.
(auth-source-pass--build-result): Make use of
`auth-source-pass--get-attr` to avoid repeated parsing.
2019-06-24 09:15:40 +02:00
Keith Amidon
94c9eb81b8
Fix auth-source-pass to search for hostname:port/username
auth-source-pass supports entries with username either prefixed to the
hostname with an @ as separator or in a subdirectory under the
hostname.  This was true when there was no port or service included in
the name, but got broken with the introduction of
auth-source-pass-port-separator.

* lisp/auth-source-pass.el (auth-source-pass--find-match-unambiguous): Fix
to match hostname:port/username.
* test/lisp/auth-source-pass-tests.el: Add corresponding tests.
2019-06-24 09:15:40 +02:00
Iku Iwasa
2a0a05789d
Add auth-source-pass-port-separator option
* lisp/auth-source-pass.el (auth-source-pass-port-separator): New
option to specify separator between host and port, default to
colon (":").
(auth-source-pass--find-match-unambiguous): Adapt to make use of the
new variable.
* test/lisp/auth-source-pass-tests.el: Add corresponding tests.
2019-06-24 09:15:40 +02:00
galaunay
a63cbb56df
Add auth-source-pass-filename option
* lisp/auth-source-pass.el (auth-source-pass)
(auth-source-pass-filename): Add option to specify a customized
password-store path.
(auth-source-pass--read-entry)
(auth-source-pass-entries): Use the new option instead of hard-coded
`~/.password-store'.
2019-06-24 09:15:40 +02:00
Damien Cassou
9574565202
* lisp/auth-source-pass.el (auth-source-pass-get): Add autoload 2019-06-24 09:15:40 +02:00
Damien Cassou
ba11be0957
* lisp/auth-source-pass.el: Version 4.0.2 2019-06-24 09:15:40 +02:00
Magnus Henoch
527efaf798
Fix auth-source-pass to return nil if no entry found
* lisp/auth-source-pass.el (auth-source-pass-search): If there is no
matching entry, auth-source-pass-search should return nil, not (nil).
This lets auth-source fall back to other backends in the auth-sources
list.
* test/lisp/auth-source-pass-tests.el: Add corresponding test.

Copyright-paperwork-exempt: yes
2019-06-24 09:15:39 +02:00
Daniel Colascione
b9ac4f815e Fix locating pdump by symlink
* admin/merge-gnulib (GNULIB_MODULES): Add canonicalize-lgpl module
* build-aux/config.guess, build-aux/gitlog-to-changelog,
build-aux/update-copyright, lib/canonicalize-lgpl.c,
lib/gnulib.mk.in, lib/malloca.c, lib/malloca.h, lib/pathmax.h,
m4/canonicalize.m4, m4/double-slash-root.m4, m4/gnulib-comp.m4,
m4/malloca.m4, my/pathmax.4: copy from GNUlib or regenerate from
update
* src/emacs.c: find dump by canonical path
2019-06-23 18:19:08 -07:00
Lars Ingebrigtsen
f3b1b5fb50 Document syntax-ppss-context
* doc/lispref/syntax.texi (Parser State): Document it.

* lisp/emacs-lisp/syntax.el (syntax-ppss-context): Add a doc
string (bug#32504).
2019-06-24 00:04:04 +02:00
Martin Kletzander
63b29f8107 Autojoin channels with same name on different servers in erc
* lisp/erc/erc-join.el (erc-autojoin-channels): Join channels with
the same name on different servers (bug#32723).

Copyright-paperwork-exempt: yes
2019-06-23 23:53:02 +02:00
Alex Branham
0b7494414a (if-let): Improve docstring by mentioning let*
* lisp/emacs-lisp/subr-x.el (if-let): Clarify that if-let is like
let*, not like let (bug#33550).
2019-06-23 22:55:40 +02:00
Carlos Pita
a74f1e93a6 Fix auto-revert resizing in image mode
* lisp/image-mode.el (image-transform-properties): Get image
parameters right after reverting; in particular, compute the
correct max size (bug#33631).
2019-06-23 22:50:46 +02:00
Paul Eggert
983e581376 Don’t line-buffer stderr
* src/sysdep.c (init_standard_fds) [DOS_NT]: Don’t line-buffer stderr.
This reverts 2019-06-20T07:32:17!eggert@cs.ucla.edu.  See:
https://lists.gnu.org/r/emacs-devel/2019-06/msg00882.html
2019-06-23 13:32:12 -07:00
Mattias Engdegård
2eafb4af55 Check validity of rx submatch-n number
* lisp/emacs-lisp/rx.el (rx-submatch): Type and range check (Bug#34373).
2019-06-23 20:31:48 +02:00
Mattias Engdegård
866f527ddf Optional space and unit in `file-size-human-readable' (bug#35756)
To improve readability of strings produced by
`file-size-human-readable', add two optional arguments:

- SPACE, to provide a string (typically a space or non-breaking space)
to put between the number and unit.  For compatibility, the default is
an empty string.

- UNIT, a string to use as unit.  For compatibility, the default is
"B" in `iec' mode and the empty string otherwise.

Also fix a glitch with small numbers in `iec' mode which caused a
stray "i" in the result.

* lisp/files.el (file-size-human-readable):
Add optional SPACE and UNIT arguments and handle small numbers correctly.
(files--ask-user-about-large-file, warn-maybe-out-of-memory):
Call with `iec' and space.
* test/lisp/files-tests.el (files-test-file-size-human-readable): New test.
* lisp/url/url-http.el (url-http-simple-after-change-function)
(url-http-content-length-after-change-function): Call with `iec' and space.
* etc/NEWS (Lisp Changes): Mention the change.
2019-06-23 20:30:50 +02:00
Michael Brumlow
b439b3bb5a (hfy-fontify-buffer): Inhibit read only
* lisp/htmlfontify.el (hfy-fontify-buffer): Inhibit read only to
enable the function to work with text that comes from buffers that
put read-only text properties on things (bug#35025).

Copyright-paperwork-exempt: yes
2019-06-23 20:11:33 +02:00
Mauro Aranda
4e0cefcf2a Document Winner mode user options
* doc/emacs/windows.texi (Window Convenience): Add documentation for
the user options winner-dont-bind-my-keys, winner-ring-size and
winner-boring-buffers (bug#35146).
2019-06-23 19:57:48 +02:00
Alexander Gramiak
807b21dc40 src/bytecode.c (exec_byte_code) Unroll Blist3 and Blist4
* src/bytecode.c (exec_byte_code): Unroll Blist3 and Blist4
(bug#35321).
2019-06-23 19:36:53 +02:00
Eric Abrahamsen
d8ebb997c1 Add NEWS entry for new command gnus-summary-browse-url
* etc/NEWS: It is documented in the manual.
2019-06-23 10:31:37 -07:00
Drew Adams
bb9d5d0dae Make ls-lisp--dired ape dired-noselect more closely
* lisp/ls-lisp.el (ls-lisp--dired): Emulate the behaviour of
non-ls-lisp.el dired better by defaulting to default-directory as
dired-noselect does (bug#35390).
2019-06-23 19:24:20 +02:00
Van L
04748e8566 Add a Code: tag to subr.el
* lisp/subr.el: Add a Code: tag comment (bug#35595).
2019-06-23 19:07:43 +02:00
Lars Ingebrigtsen
985a2d3520 Remove outdate comment about an utf-8 cookie that was removed in 2015 2019-06-23 19:07:43 +02:00
Nick Drozd
c4bfb5dfab Handle 'code' tag in shr.el
* etc/NEWS: Announce change in shr behavior (bug#36247).
* lisp/net/shr.el: Add 'code' tag handling.
2019-06-23 19:07:43 +02:00
Eric Abrahamsen
55cb14bfa0 New command gnus-summary-browse-url
* lisp/gnus/gnus-sum.el (gnus-summary-browse-url): New command for
  browsing URLs from the article buffer from the summary buffer.
  (gnus-summary-mode-map): Bind to "w".
  (gnus-summary-article-map): And to "A w".
* doc/misc/gnus.texi (Article Commands): Document.
2019-06-23 10:05:39 -07:00
Michael Albinus
383a557b53 Improve error handling in tramp-gvfs
* lisp/net/tramp-gvfs.el (tramp-gvfs-get-directory-attributes)
(tramp-gvfs-get-root-attributes)
(tramp-gvfs-handle-file-attributes): Don't ignore errors.
(tramp-make-goa-name): New defun.
(tramp-gvfs-get-remote-prefix): Use it.
(tramp-gvfs-maybe-open-connection): Raise user errors in case of.
Check also, that GOA accounts are proper.
(tramp-get-goa-accounts): Cache connection property.

* lisp/net/tramp.el (tramp-handle-file-equal-p)
(tramp-handle-file-in-directory-p): Use `tramp-equal-remote'.
2019-06-23 18:58:11 +02:00
Eli Zaretskii
a1deb6cac3 ; * src/image.c: Minor copyedits of native transform commentary. 2019-06-23 19:24:32 +03:00
Lars Ingebrigtsen
d2bbea23fa Document what the t' value for HIST in read-string' means
* src/minibuf.c (syms_of_minibuf): Say that `t' means "no history"
(bug#36324).
(Fread_from_minibuffer): Say the same for HIST.
2019-06-23 14:05:55 +02:00
Simen Heggestøyl
abf7d0d802 Split up and add tests for two page.el functions
* lisp/textmodes/page.el (page--count-lines-page): New function
extracted from `count-lines-page'.
(count-lines-page): Extract main logic into `page--count-lines-page'.
(page--what-page); New function extracted from `what-page'.
(what-page): Extract main logic into `page--what-page'.

* test/lisp/textmodes/page-tests.el (page-tests-count-lines-page)
(page-tests-what-page): New tests for `page--count-lines-page' and
`page--what-page'.  (Bug#36009)
2019-06-23 07:27:19 +02:00
Stefan Monnier
b9d0337c84 (with-suppressed-warnings): Also suppress warnings when not byte-compiling
* lisp/emacs-lisp/byte-run.el (with-suppressed-warnings): Bind
byte-compile--suppressed-warnings when possible.
2019-06-22 23:29:00 -04:00
Allen Li
2db75262c7 Fix defining inverse abbrevs on previous words (Bug#36243)
* lisp/abbrev.el (inverse-add-abbrev): Skip trailing nonword
characters when defining abbrev.

* test/lisp/abbrev-tests.el (abbrev-edit-save-to-file-test): Add
regression tests.
2019-06-22 19:25:44 -04:00
Noam Postavsky
0f01a58c39 Fix python docstring auto-fill (Bug#36056)
* lisp/progmodes/python.el (python-mode): Set
fill-indent-according-to-mode locally to t.  This lets auto-fill do
the right thing when auto-filling inside a docstring.  The default was
to nil on 2001-11-25 "(fill-indent-according-to-mode): Default to nil"
with the comment that it "screws up CC-mode's filling tricks".  But
presumably it shouldn't be a problem for python-mode.
* test/lisp/progmodes/python-tests.el (python-auto-fill-docstring):
New test.
2019-06-22 19:25:44 -04:00
Noam Postavsky
f46b16b9fb Make rcirc parsing more RFC2812 compliant (Bug#36233)
Do continue to allow multiple spaces between arguments, even though
that is technically not allowed by the RFC.
* lisp/net/rcirc.el (rcirc-process-server-response-1): Fix parsing of
arguments which contain colons.
* test/lisp/net/rcirc-tests.el: New test.
2019-06-22 19:25:44 -04:00
Noam Postavsky
96ebbf44b0 * lisp/net/rcirc.el (rcirc-prompt-for-encryption): Simplify. 2019-06-22 19:16:27 -04:00
Paul Eggert
f4f165f782 Bring macuvs.h back under Git control
* admin/unidata/Makefile.in (maintainer-clean):
Instead of removing macuvs.h here ...
(extraclean): ... Remove it here.
* admin/unidata/uvs.el (uvs-print-table-ivd):
Add to comment explaining why macuvs.h is in Git.
* src/macuvs.h: Regenerate and re-add to Git.
2019-06-22 11:41:49 -07:00
Lars Ingebrigtsen
9b766d3be3 Respect case-insensite DelSp flow-fill parameter
* lisp/gnus/mm-view.el (mm-inline-text): The DelSp parameter is
case-insentitive, so make it work then it's "Yes" (bug#26775).
2019-06-22 16:25:36 +02:00
Andreas Schwab
d038d31c37 (nnir-notmuch-remove-prefix): Respect MAILDIR
* lisp/gnus/nnir.el (nnir-notmuch-remove-prefix): Respect MAILDIR
and regexp-quote the result (bug#34940).
2019-06-22 14:55:06 +02:00
Lars Ingebrigtsen
68d8872875 Use plain report-emacs-bug instead of gnus-bug
* doc/misc/gnus.texi (Compatibility): Remove mention of deprecated
variable.
* lisp/gnus/gnus-msg.el (gnus-bug): Just use `report-emacs-bug'.
(gnus-bug-kill-buffer): Remove.
(gnus-bug-create-help-buffer, gnus-bug-message): Remove.
2019-06-22 14:10:00 +02:00
Robert Pluim
1b96dd6924 Export Gnus calendar events to org even if they have no description
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event->org-entry):
Don't ignore events that have no description.
2019-06-22 13:17:18 +02:00
YAMAMOTO Mitsuharu
28035cb456 Make ftcr font backend driver more consistent with xft
* src/ftcrfont.c: Include charset.h.
(ftcrfont_has_char): Import font adstyle related code from ftfont_has_char.
2019-06-22 19:03:27 +09:00
Eli Zaretskii
0b733a24ac ; * lisp/select.el (xselect--encode-string): Fix a thinko. 2019-06-22 12:38:05 +03:00