Commit graph

73016 commits

Author SHA1 Message Date
Stefan Monnier
da1974fabd * lisp/gnus: Further reduce assumptions about gnus-data format
* lisp/gnus/gnus-registry.el (gnus-registry-fetch-message-id-fast)
(gnus-registry-fetch-simplified-message-subject-fast)
(gnus-registry-fetch-sender-fast, gnus-registry-fetch-recipients-fast)
(gnus-registry--set/remove-mark): Don't hardcode assoc for gnus-data-find-in.

* lisp/gnus/gnus-sum.el (gnus-data-update-list): Don't hardcode `nth 2`
for gnus-data-pos.
(gnus-summary-insert-old-articles, gnus-summary-insert-new-articles)
(gnus-summary-first-article-p): Don't hardcode `car` for `gnus-data-number`.
(gnus-summary-move-article, gnus-summary-expire-articles)
(gnus-summary-delete-article): Don't hardcode assoc for gnus-data-find-in.

* lisp/gnus/spam.el (spam-fetch-article-header): Don't hardcode `nth 3`
for gnus-data-header.
2019-06-07 15:28:12 -04:00
Eli Zaretskii
77f96e2cc1 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs 2019-06-07 22:06:01 +03:00
Tak Kunihiro
9f4c945b5c Make mouse-wheel-scroll-amount consistent among platforms
* lisp/term/ns-win.el (mouse-wheel-scroll-amount): Do not put any
values on mouse-wheel-scroll-amount on ns.
2019-06-07 19:26:42 +01:00
Eli Zaretskii
4ebfec02f0 Merge remote-tracking branch 'origin/harfbuzz' 2019-06-07 17:52:16 +03:00
Glenn Morris
348657cc21 Merge from origin/emacs-26
9254885 (origin/emacs-26) Resurrect display-line-number-mode in clien...
aecbbd5 * src/fns.c (Fmapconcat): Doc fix.  (Bug#35710)
8e5fc38 Fix typo
ee21b40 * lisp/term/w32-win.el ([noname]): Bind to 'ignore'.  (Bug#36...
f68b33f Fix styling of Unicode codepoints in manuals
ff7ec6f Fix a few uses of quotes in user manual
b67042b More minor copyedits in the Emacs manual
9734b5c Fix minor issues in the Emacs manual
c153250 Try to improve text on atomic windows in Elisp manual
fb314ba Don't recommend insert-before-markers in process filters
2019-06-07 07:50:49 -07:00
Glenn Morris
5e1e1e71cc Merge from origin/emacs-26
2860285 Allow macros autoloaded as functions during bytecomp (Bug#36022)
2019-06-07 07:50:48 -07:00
Eli Zaretskii
9254885a95 Resurrect display-line-number-mode in client frames
* lisp/linum.el (linum-on): Mention bug#35726 in a comment.
* lisp/display-line-numbers.el
(display-line-numbers--turn-on): Don't check for daemon.
(Bug#35726)
2019-06-07 17:32:17 +03:00
John Shahid
ad9eadbe4a Consider line spacing and font height when deriving proc window size
* lisp/window.el (window-adjust-process-window-size): Use
  window-screen-lines instead of window-body-height.
* lisp/term.el (term-mode): Use window-screen-lines to set the initial
  window height.
2019-06-07 11:53:17 +03:00
Noam Postavsky
a14eb43215 Add "pin" to password-word-equivalents (Bug#35523)
* lisp/international/mule-conf.el (password-word-equivalents): Add "pin".
* test/lisp/comint-tests.el (comint-testsuite-password-strings): Add
test case.
2019-06-06 19:29:42 -04:00
Oleh Krehel
e778c38bef lisp/gnus/message.el (message--send-mail-maybe-partially): Extract 2019-06-06 16:08:48 +02:00
Oleh Krehel
e51adfbdb7 lisp/gnus/message.el (message--check-continuation-headers): Extract 2019-06-06 16:01:10 +02:00
Oleh Krehel
e188f08fcd lisp/gnus/message.el (message--fold-long-headers): Add docstring 2019-06-06 15:50:46 +02:00
Eli Zaretskii
ee21b402d7 * lisp/term/w32-win.el ([noname]): Bind to 'ignore'. (Bug#36083) 2019-06-06 16:28:04 +03:00
Steve Scott
cd3221ab0f Check rcirc-server for auto authentication (Bug#10162)
Since the hostname returned by irc.freenode.net can be something other
than irc.freenode.net, e.g. niven.freenode.net, the entries for
rcirc-authinfo and rcirc-server-alist will not match.
* lisp/net/rcirc.el (rcirc-handler-001): Check rcirc-server (the
hostname connected to) instead of rcirc-server-name (the hostname
returned), this corresponds with what rcirc-authenticate does.
Moreover, if rcirc-auto-authenticate-flag is set, check the
corresponding rcirc-authinfo, regardless of whether the
rcirc-authenticate-before-join must happen.

Copyright-paperwork-exempt: yes
2019-06-05 20:30:23 -04:00
Noam Postavsky
da118e6a7c Keep nxml prolog updated via syntax-propertize
Instead of using after-change-functions.  Also, stop consulting
nxml-prolog-regions during syntax-propertize.  It turns out the
problems fixed by using prolog information are actually due to using
the wrong syntax table during propertizing.  This was fixed in
2019-06-04 "* lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for
syntax-propertize." so consulting the prolog data is no longer needed.
* lisp/nxml/nxml-rap.el (nxml-maybe-rescan-prolog): Remove.
* lisp/nxml/nxml-mode.el (nxml-mode): Stop using it.
(nxml-syntax-propertize): Don't use nxml-prolog-regions, just call
nxml-scan-prolog if needed before delegating to
sgml-syntax-propertize.
* test/lisp/nxml/nxml-mode-tests.el (nxml-mode-edit-prolog): New test.
2019-06-05 20:30:23 -04:00
Alan Third
610fb73ab6 Add native image rotation and cropping
* lisp/image.el (image--get-imagemagick-and-warn): Only fallback to
ImageMagick if native transforms aren't available.
* src/dispextern.h (INIT_MATRIX, COPY_MATRIX, MULT_MATRICES): New
macros for matrix manipulation.
(HAVE_NATIVE_SCALING, HAVE_NATIVE_TRANSFORMS): Rename and change all
relevant locations.
* src/image.c (x_set_image_rotation):
(x_set_transform): New functions.
(x_set_image_size): Use transform matrix for resizing under X and NS.
(x_set_image_crop): New function.
(lookup_image): Use the new transform functions.
(Fimage_scaling_p, Fimage_transforms_p): Rename and update all
callers.
* src/nsimage.m (ns_load_image): Remove rotation code.
(ns_image_set_transform): New function.
([EmacsImage dealloc]): Release the saved transform.
([EmacsImage rotate:]): Remove unneeded method.
([EmacsImage setTransform:]): New method.
* src/nsterm.h (EmacsImage): Add transform property and update method
definitions.
* src/nsterm.m (ns_dumpglyphs_image): Use the transform to draw the
image correctly.
* src/xterm.c (x_composite_image): Use PictOpSrc as we don't care
about alpha values here.
* doc/lispref/display.texi (Image Descriptors): Add :rotation.
(ImageMagick Images): Remove :rotation.
2019-06-05 22:28:46 +01:00
Juri Linkov
ec264e7126 * lisp/wid-edit.el (widget-choose): Use display-buffer-in-direction
to display buffer in bottom direction with fit-window-to-buffer.

* lisp/proced.el (proced-with-processes-buffer): Idem.  (Bug#35592)
2019-06-05 23:57:07 +03:00
Dario Gjorgjevski
dec148939a Do not use syntax-ppss-table in syntax-propertize when nil (Bug#36095)
* lisp/emacs-lisp/syntax.el (syntax-propertize): Use (syntax-table)
instead of syntax-ppss-table when the latter is nil.
2019-06-05 07:29:23 -04:00
Stefan Monnier
0b3982b1a3 * lisp/emacs-lisp/syntax.el: Use syntax-ppss-table for syntax-propertize.
`syntax-ppss` uses `syntax-ppss-table` while parsing the buffer as well
as when it calls `syntax-propertize`, but `syntax-propertize` can also
be called directly rather than via `syntax-ppss` so it needs to explicitly
use `syntax-ppss-table` as well in order to avoid using sometimes one
table and sometimes another.

(syntax-ppss-table): Move before new use.
(syntax-propertize): Use it.
2019-06-04 21:48:06 -04:00
Paul Eggert
ca7b6a4451 Remove retired maintainers from comments
* lisp/international/quail.el, lisp/language/ind-util.el:
* lisp/language/indian.el, lisp/mail/smtpmail.el, lisp/mwheel.el:
* lisp/obsolete/longlines.el, lisp/progmodes/idlw-complete-structtag.el:
* lisp/progmodes/idlw-help.el, lisp/progmodes/idlw-shell.el:
* lisp/progmodes/idlw-toolbar.el, lisp/progmodes/idlwave.el:
* lisp/progmodes/simula.el, lisp/ps-print.el, lisp/ps-samp.el:
Remove Maintainer: lines for maintainers who have retired.
2019-06-04 12:42:47 -07:00
Stefan Monnier
f4d3253831 * lisp/emacs-lisp/thunk.el (thunk-delay): Fix memory leak
Get rid of references to the free variables of `body` once the thunk has
been forced (bug#30626).
2019-06-04 12:55:53 -04:00
Stefan Monnier
ffb7bbdf68 * sgml-mode.el (sgml-syntax-propertize-rules): More verbose comments 2019-06-04 12:26:52 -04:00
Jackson Ray Hamilton
ea09b9fe34
Specify the matching chars for JSX open/close parenthesis
* lisp/progmodes/js.el (js-jsx--syntax-propertize-tag): Indicate the
matching parenthesis character (since JSX’s < and > aren’t typical
parenthesis) for the sake of packages like rainbow-delimiters which
need that information.
2019-06-04 09:05:40 -07:00
Jackson Ray Hamilton
c4214e4dc1
Revert "Add extra text property to fix issue with js2-mode integration"
This reverts commit 382a508ed2.

We ended up deciding against using this in js2-mode.  Instead,
js2-mode may eventually use js-mode’s syntax-propertize-function to
set syntax-table text properties.
2019-06-04 09:05:30 -07:00
Paul Eggert
741d04a879 Adjust comments/debug to match C bignum code
* doc/lispintro/emacs-lisp-intro.texi (Digression into C):
Adjust to match current C code.
* lisp/emacs-lisp/ert.el (ert--force-message-log-buffer-truncation):
Simplify.
* src/.gdbinit (Lisp_Object_Printer.to_string): Return
a string that says "make_fixnum", not "make_number".
2019-06-04 08:34:16 -07:00
Stefan Monnier
dd7bc5de3f * lisp/gnus/message.el (message-send-mail): Tweak last commit 2019-06-04 09:18:01 -04:00
Noam Postavsky
3f2bfe9a19 Keep nxml-prolog-end up to date (Bug#18871)
The change on 2016-01-16 "lisp/nxml: Use syntax-tables for comments"
removed the update of nxml-prolog-end, although it already failed to
work correctly after 2013-10-07 "* lisp/nxml/nxml-mode.el: Use
lexical-binding and syntax-propertize."
* lisp/nxml/nxml-rap.el: New function.
* lisp/nxml/nxml-mode.el (nxml-mode): Add it to
after-change-functions.
2019-06-04 08:42:50 -04:00
Noam Postavsky
d414c93b06 Don't sgml-syntax-propertize-inside XML prolog (Bug#32823)
* lisp/nxml/nxml-mode.el (nxml-syntax-propertize): New function.
(nxml-mode): Use it as the syntax-propertize-function.
* test/lisp/nxml/nxml-mode-tests.el (nxml-mode-doctype-and-quote-syntax)
(nxml-mode-prolog-comment): New tests.
2019-06-04 08:42:50 -04:00
Noam Postavsky
e04f93e18a Don't fontify text outside of SGML/XML tags (Bug#33887)
* lisp/textmodes/sgml-mode.el (sgml-font-lock-syntactic-face): New
function.
(sgml-mode):
* lisp/nxml/nxml-mode.el (nxml-mode): Use it as
font-lock-syntactic-face-function value.
2019-06-04 08:42:50 -04:00
Noam Postavsky
438e4804d1 Fix some SGML syntax edge cases (Bug#33887)
* lisp/textmodes/sgml-mode.el (sgml-syntax-propertize-rules): Handle
single and double quotes symmetrically.  Don't skip quoted comment
enders.
* test/lisp/textmodes/sgml-mode-tests.el (sgml-tests--quotes-syntax):
Add more test cases.
(sgml-mode-quote-in-long-text): New test.
2019-06-04 08:42:50 -04:00
Michael Albinus
7aaf500701 Stronger check for Tramp method
* lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection):
Use `tramp-get-connection-name'.

* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link):
* lisp/net/tramp-smb.el (tramp-smb-handle-make-symbolic-link):
* lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-make-symbolic-link):
Don't check remote TARGET.

* lisp/net/tramp.el (tramp-dissect-file-name): Check for proper method.
(tramp-file-name-for-operation): Take only 2nd argument into
account for file name handler.
(tramp-file-name-handler): Suppress checks for `file-remote-p'.

* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test02-file-name-dissect): Suppress check for wrong
method.

* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
Dump *all* Tramp buffers.
(tramp-test02-file-name-dissect)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate): Check also wrong method.
(tramp-test03-file-name-defaults): Check, that the respective
Tramp package is loaded.
(tramp-test04-substitute-in-file-name)
(tramp-test05-expand-file-name)
(tramp-test06-directory-file-name, tramp-test44-auto-load):
Suppress check for wrong method.
(tramp-test30-make-process): Remove instrumentation code.
(tramp-test31-interrupt-process, tramp-test36-vc-registered):
Guarantee that connection is established prior starting process.
2019-06-04 12:51:45 +02:00
Noam Postavsky
f81b812d75 Let untarring (and hence package installation) go faster (Bug#35909)
* lisp/subr.el (progress-reporter-update)
(progress-reporter-force-update, progress-reporter-do-update): Accept
new optional argument, SUFFIX.
* doc/lispref/display.texi (Progress): Document it.
* etc/NEWS: Announce it.
* lisp/tar-mode.el (tar-untar-buffer): Use a progress reporter instead
of calling message.  Suppress message from write-region.  Let-bind
write-region-inhibit-fsync to t.
2019-06-03 20:18:19 -04:00
Juri Linkov
2aae063055 User-friendly display of error messages at the end of minibuffer
* lisp/simple.el (minibuffer-setup-hook): Add minibuffer-error-initialize.
(minibuffer-error-initialize, minibuffer-error-function): New functions.
(Bug#34939)
2019-06-03 23:27:19 +03:00
Juri Linkov
9d72d6a3a2 * lisp/char-fold.el (char-fold-make-table): New function
with body extracted from INITVALUE of defconst (bug#35689).
Bind search-spaces-regexp to nil (bug#35802).

* test/lisp/char-fold-tests.el: Relocate helpers to file beginning.
(char-fold--test-bug-35802): New test.
2019-06-03 23:18:31 +03:00
Stefan Monnier
4b87a032dc * lisp/gnus/gnus-async.el: Use lexical-binding
Remove redundant :group args.
(gnus-async-post-fetch-function): Make it always be a function.
(gnus-make-async-article-function, gnus-async-prefetch-headers):
Use a closure rather than `(lambda ...)
2019-06-03 13:44:23 -04:00
Oleh Krehel
83c3a61e4c lisp/gnus/message.el (message-send-mail): Don't wrongly assert on Unicode msg
Using this setting:

    (setq message-send-mail-function 'message-send-mail-with-sendmail)
    (setq sendmail-program "msmtp")

the message seding is handled by an external program, so no Unicode
encoding is performed in Emacs. Thus Emacs must not assert that the
Unicode encoding was performed.
2019-06-03 15:48:09 +02:00
Juanma Barranquero
33ea72eb3c * help-fns.el (help-fns--first-release): Do not fail if no release is found. 2019-06-03 02:13:57 +02:00
Stefan Monnier
e02f751e3f * gnus-(sum|async).el: Eliminate assumptions about gnus-data format
* lisp/gnus/gnus-async.el (gnus-async-with-semaphore): Use `declare`.
(gnus-async-prefetch-next): Don't assume gnus-data-number == car.

* lisp/gnus/gnus-sum.el (gnus-data-find-in): New function.
(gnus-data-find, gnus-data-find-list): Use it.
(gnus-summary-article-subject): Make it a function.
(gnus--dummy-data-list): New const.
(gnus-update-summary-mark-positions): Use it.
2019-06-02 19:21:45 -04:00
Stefan Monnier
8047bd08ca * gnus.el: Fix cycle in eager macroexpansion
* lisp/gnus/gnus-sum.el (gnus-data): Use cl-defstruct.
(gnus-data-set-pos, gnus-data-set-header, gnus-data-set-mark)
(gnus-data-set-number): Delete macros; use `setf` instead.
(gnus-data-unread-p, gnus-data-read-p, gnus-data-pseudo-p, gnus-data-find)
(gnus-summary-skip-intangible, gnus-summary-article-number):
Redefine as inlinable functions rather than macros.

* lisp/gnus/gnus.el: Adjust autoloads for the macros turned functions.
2019-06-02 13:04:13 -04:00
Stefan Monnier
e3029eaadf * lisp/help-fns.el: Make hyperlink for the "first release" info
* lisp/help-fns.el (help-fns--first-release): Return a "button".
(help-fns--mention-first-release): Preserve the string's text-properties.

* lisp/help-mode.el (help-news): New button type.
2019-06-02 11:52:41 -04:00
Alan Mackenzie
30b0c5bf42 Change default offset of CC Mode syntactic symbol inlambda to 0
It's previous default was c-lineup-inexpr-block.  This change is mainly to
prevent excessive indentation of the innards of C++ lambda functions.

* lisp/progmodes/cc-vars.el (c-offsets-alist): Amend the offset for inlambda
to 0.

* doc/misc/cc-mode.texi (FAQ): Amend the answer to the question about this
matter.
2019-06-02 14:05:33 +00:00
Stefan Kangas
4c549ab5d0 Use lexical-binding in morse.el and studly.el and add tests
* lisp/play/morse.el: Use lexical-binding.
* lisp/play/studly.el: Use lexical-binding.
* test/lisp/play/morse-tests.el: New file.
* test/lisp/play/studly-tests.el: New file.
2019-06-01 18:52:22 -07:00
Stefan Kangas
227b3c89f0 Use lexical-binding in paragraphs.el and add tests
* lisp/textmodes/paragraphs.el: Use lexical-binding.
(repunctuate-sentences): Make it work non-interactively.
* test/lisp/textmodes/paragraphs-tests.el: New file.
2019-06-01 18:52:22 -07:00
Paul Eggert
bee3cc604d Tune cl-assoc
* lisp/emacs-lisp/cl-seq.el (cl-assoc):	Use assq for fixnums.
2019-06-01 18:13:00 -07:00
Mattias Engdegård
b5e41e8ba3 Fix cl-member' and cl-assoc' for bignums
* lisp/emacs-lisp/cl-seq.el (cl-member, cl-assoc): Work with bignums.
* test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-bignum-eql): New.
2019-06-01 18:13:00 -07:00
Daniel Ralston
d3f14ffae4 Make rcirc PART and QUIT reasons customizable (Bug#12857)
* rcirc.el: (rcirc-default-part-reason, rcirc-default-quit-reason):
New customizable vars.
(rcirc-cmd-quit, rcirc-cmd-part): Consult them.

Copyright-paperwork-exempt: yes
2019-06-01 20:01:43 -04:00
Noam Postavsky
4541e31d9c Handle argument to rcirc /part properly (Bug#11157)
* lisp/net/rcirc.el (part): Split out channel name and part reason.
* doc/misc/rcirc.texi (rcirc commands): Clarify that channel name may
be provided to /part.
2019-06-01 20:01:43 -04:00
Noam Postavsky
b9c0e3e8c0 * lisp/net/rcirc.el: Remove redundant :group usage
... and empty Todo comment section.
2019-06-01 20:01:43 -04:00
Noam Postavsky
2860285621 Allow macros autoloaded as functions during bytecomp (Bug#36022)
* lisp/emacs-lisp/bytecomp.el (byte-compile-callargs-warn): Don't pass
symbols which don't have a known definition to
byte-compile--function-signature, it fails to compile code which
previously compiled successfully (for example, gnus.el until
2019-06-01 "* lisp/gnus/gnus.el: Mark autoloaded macros as such" which
autoloads some macros as if they were functions).
2019-06-01 17:48:43 -04:00
Noam Postavsky
04f13a5d9b Disable byte-compile-cond-use-jump-table (Bug#35770)
* lisp/emacs-lisp/bytecomp.el (byte-compile-cond-use-jump-table): Set
to nil by default.

Don't merge to master, the bug is already fixed there.
2019-06-01 17:48:43 -04:00