Commit graph

5348 commits

Author SHA1 Message Date
Paul Eggert
98ac36efe4 Merge from origin/emacs-26
1e5949642a ; * src/gtkutil.c (xg_create_frame_widgets): Add FIXME re....
e7c8da4d05 bug#28609: simple.el
827db6b559 Use a separate syntax-ppss cache for narrowed buffers
a2244f417a Improve python3-compatibility of fallback completion (Bug#...
79162cb0db Fix subr-x-tests when running from elc
66d35ae49d * lisp/eshell/esh-util.el (eshell-condition-case): Add deb...
f5e72b04d9 Make sh-indentation into an alias for sh-basic-offset (Bug...
a58d0c590a Fix loading of smie-config rules (Bug#24848)
3a68dec327 ; Update NEWS for the change in eldoc-message
5a41dd0a1f Reset default-directory inside *xref-grep* buffer
49cd561dc6 * test/lisp/tramp-tests.el (tramp-test21-file-links): Spec...
b719f6b20b Loosen strict parsing requirement for desktop files
c7a0c13777 * lisp/xdg.el (xdg-thumb-uri): Fix doc string.
dc6b3560e5 Fix documentation of `make-frame' and related variables an...
3d3778d82a Accept new `always' value for option `buffer-offer-save'
638f64c40a Improve new NS scrolling variable names
d93301242f Document 'replace-buffer-contents' in the manual.
00e4e3e9d2 Fix undecorated frame resizing issues on NS (bug#28512)
820739bbb5 ; * doc/emacs/display.texi (Display Custom): Fix wording.
f2b2201594 ; Spelling and URL fixes
0e143b1fc5 Documentation improvements for 'display-line-numbers'
f656ccdb43 ; Fix typo
d64da52d57 Fix last change in bat-mode.el
908af46abd Fix restoring in GUI sessions desktop saved in TTY sessions
51cbd85454 Improve syntax highlighting in bat-mode
0273916618 Document the 'list-FOO' convention
d24ec58540 Expose viewing conditions in CAM02-UCS metric
a81d5a3d3f Revert "Set frame size to actual requested size (bug#18215)"
0bf066d4b2 Add tests for Edebug
68baca3ee1 Catch more messages in ert-with-message-capture
28e0c410c9 ; * lisp/mouse.el (secondary-selection-exist-p): Doc fix.
31e1d9ef2f Support setting region from secondary selection and vice v...
047f02f00f Fix new copy-directory bug with empty dirs
fbd15836af * doc/lispref/strings.texi (Formatting Strings): Improve i...
f16a8d5dbd Fix 2 testsuite tests for MS-Windows
965cffd89c Rename timer-list to list-timers
a5fec62b51 Provide native touchpad scrolling on macOS
7b3d1c6beb Fix MinGW64 build broken by recent MinGW64 import libraries
c83d0c5fdf Fix crashes in 'move-point-visually' in minibuffer windows
7f3d5f929d * src/emacs.c (usage_message): Don't mention 'find-file'.
6845282200 Fix a minor inaccuracy in the Emacs manual
74d7bb9498 Fix errors in flyspell-post-command-hook
40fdbb01d0 Work on Tramp's file-truename
1a01423b3c Fix bug with make-directory on MS-Windows root
066efb8666 Fix log-view-diff-common when point is after last entry
3f006b56cd Adapt fileio-tests--symlink-failure to Cygwin
ee512e9a82 Ignore buffers whose name begins with a space in save-some...
9e1b5bd92c Improve tramp-interrupt-process robustness
8d4223e61b Minor Tramp doc update
331d0e520f Fix gensym
466df76f7d Cleanup in files-tests.el
6359fe630a Remove old cl-assert calls in 'newline'
059184e645 Avoid crash with C-g C-g in GC
541006c536 Fix format-time-string %Z bug with negative tz
679e05eeb9 message-citation-line-format %Z is now tz name
4e8888d438 Use doc-view or pdf-tools on any window-system
5f28f0db73 Fix bug with min and max and NaNs
37b5e661d2 Fix recently-introduced copy-directory bug
6bbbc38b34 Merge from Gnulib
57249fb297 Fix compatibility problem in Tramp
411bec82c4 Avoid GCC 7 compilation warning in eval.c
34a6774daa ; Partially revert c3445aed51
3003ac0469 Adapt Tramp version.  Do not merge
48d39c39e8 Search for Syntax section when viewing MDN
9d101376b4 Allow smerge-keep-current to work for empty hunks
13aba24add Call vc-setup-buffer in vc-git-log-{in,out}going
1d599df5e0 Fix last change to textmodes/page-ext.el
a726e09a9a * test/src/lcms-tests.el (lcms-cri-cam02-ucs): Skip if lcm...
546413e1ac * test/src/lcms-tests.el (lcms-whitepoint): Skip if lcms2 ...
96aaeaaffa ; * src/lcms.c: Minor stylistic changes in comments.
c3df816585 Fix compilation warning in etags.c
2017-09-29 22:06:14 -07:00
Mark Oteiza
551594e951 Add indent spec to easy-mmode macros
Ideally these macros should expand to the proper code instead of
relegating all the work to a function call.
* lisp/emacs-lisp/easy-mmode.el (easy-mmode-defmap):
(easy-mmode-define-syntax): Add indent spec.
2017-09-28 07:52:00 -04:00
Mark Oteiza
1f02ae3931 Mark some functions as pure
* lisp/emacs-lisp/byte-opt.el: Add some functions that return integral
values to the builtin list of pure functions.
2017-09-27 16:32:07 -04:00
Dmitry Gutov
827db6b559 Use a separate syntax-ppss cache for narrowed buffers
* lisp/emacs-lisp/syntax.el (syntax-ppss-wide):
New variable, to contain the data from `syntax-ppss-last' and
`syntax-ppss-cache'.
(syntax-ppss-cache, syntax-ppss-last): Remove.
(syntax-ppss-narrow, syntax-ppss-narrow-start): New variables.
(syntax-ppss-flush-cache): Flush both caches.
(syntax-ppss--data): Return the appropriate last result and
buffer cache for the current restriction.
(syntax-ppss, syntax-ppss-debug): Use it (bug#22983).
2017-09-26 02:52:23 +03:00
Noam Postavsky
a58d0c590a Fix loading of smie-config rules (Bug#24848)
* lisp/emacs-lisp/smie.el (smie-config--setter): Use `set-default'
instead of `setq-default'.
(smie-config): Use `custom-initialize-set' instead of
`custom-initialize-default' as the :initialize argument.

* lisp/progmodes/sh-script.el (sh-learn-buffer-indent): Mention that
we call `smie-config-guess' so that the user will have a chance to
find the correct docstring to consult.  Remove hedging comments
regarding use of abnormal hooks.
2017-09-25 19:39:19 -04:00
Paul Eggert
f2b2201594 ; Spelling and URL fixes 2017-09-23 00:36:56 -07:00
Mark Oteiza
f656ccdb43 ; Fix typo
* lisp/emacs-lisp/subr-x.el: Nix extra parenthesis.
2017-09-22 16:34:31 -04:00
Gemini Lasswell
68baca3ee1 Catch more messages in ert-with-message-capture
* lisp/emacs-lisp/ert-x.el (ert-with-message-capture): Capture
messages from prin1, princ and print.
(ert--make-message-advice): New function.
(ert--make-print-advice): New function.
2017-09-21 13:35:45 -07:00
Mark Oteiza
965cffd89c Rename timer-list to list-timers
* doc/emacs/anti.texi (Antinews):
* doc/lispref/os.texi (Timers):
* etc/NEWS:
* lisp/emacs-lisp/timer-list.el:
(timer-list-mode): Rename timer-list to list-timers.
2017-09-19 22:24:23 -04:00
Gemini Lasswell
dee96f4a17 * lisp/emacs-lisp/cl-macs.el (cl-letf): Fix Edebug spec (bug#24765) 2017-09-16 07:36:18 -07:00
Mark Oteiza
30c955b172 Use cl-print in timer list
* lisp/emacs-lisp/timer-list.el (timer-list): Use cl-print
for handling functions.
(timer-list-mode): Capitalize major mode name.  Set bidi direction
as in tabulated-list-mode.
2017-09-15 23:18:54 -04:00
Mark Oteiza
117f28430a Bind n,p in timer-list
* lisp/emacs-lisp/timer-list.el (timer-list-mode-map): Bind n and p
to next- and previous-line, respectively.
2017-09-14 19:52:09 -04:00
Paul Eggert
bc511a64f6 Prefer HTTPS to FTP and HTTP in documentation
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November.  Change these FTP URLs to https://ftp.gnu.org
instead.  Make similar changes for URLs to other organizations moving
away from FTP.  Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
2017-09-13 15:54:37 -07:00
Mark Oteiza
bdb71dea4a Add clarification to if-let* docstring
Also make its behaviour consistent with and-let* in that empty bindings
results in success, not failure.
* lisp/emacs-lisp/subr-x.el: Edit docstring, change else to then.
2017-09-13 13:27:49 -04:00
Mark Oteiza
912826a829 Remove "baroque" use of prefix argument from gensym
'cl-gensym' was simply moved here, but let us take an opportunity to
shed some historical baggage.
* lisp/subr.el (gensym): Remove special treatment of PREFIX as a
number.  Use "g" as prefix to differentiate from cl-gensym defaults.
* doc/lispref/symbols.texi (Creating Symbols): Update accordingly.
* lisp/emacs-lisp/cl-macs.el (cl--gensym-counter, cl-gensym): Restore.
2017-09-13 10:38:05 -04:00
Mark Oteiza
9a8bbb9d5d ; Fix previous commit
Removing extraneous code, thanks to Michael Heerdegen.
* lisp/emacs-lisp/subr-x.el (internal--listify): Remove latter
condition which always evaluates to t.
(internal--build-binding-value-form): Remove dead code.
2017-09-13 10:19:59 -04:00
Mark Oteiza
370d0e7aa7 Update uses of if-let and when-let
* lisp/dom.el (dom-previous-sibling):
* lisp/emacs-lisp/package.el (package--with-work-buffer):
(package--sort-deps-in-alist, package--sort-by-dependence):
(package-install-from-archive, package-install):
(package-menu-execute, package-menu--populate-new-package-list):
* lisp/filenotify.el (file-notify--rm-descriptor):
(file-notify--event-watched-file, file-notify--event-file-name):
(file-notify--event-file1-name, file-notify-rm-watch):
(file-notify-valid-p):
* lisp/gnus/message.el (message-toggle-image-thumbnails):
* lisp/gnus/nnimap.el (nnimap-request-move-article):
* lisp/ibuf-ext.el (ibuffer-repair-saved-filters):
* lisp/mpc.el (mpc-format):
* lisp/net/eww.el (eww-tag-meta, eww-process-text-input):
(eww-save-history):
* lisp/net/shr.el (shr-tag-base, shr-tag-object, shr-make-table-1):
* lisp/progmodes/prog-mode.el (prettify-symbols--post-command-hook):
* lisp/svg.el (svg-remove):
* lisp/textmodes/css-mode.el (css--named-color):
(css--colon-inside-funcall):
* lisp/textmodes/sgml-mode.el (html-current-buffer-classes):
(html-current-buffer-ids): Use if-let* and when-let* instead.
2017-09-12 13:18:10 -04:00
Mark Oteiza
4612b2a2b3 Implement and-let*
This also includes changes to if-let and when-let.  The single tuple
special case is ambiguous, and binding a symbol to nil is not as
useful as binding it to its value outside the lexical scope of the
binding.  (Bug#28254)
* etc/NEWS: Mention.
* lisp/emacs-lisp/subr-x.el (internal--listify):
(internal--build-binding-value-form): Extend to account for
solitary symbols and (EXPR) items in binding varlist.
(if-let*, when-let*): Nix single tuple case and incumbent
bind-symbol-to-nil behavior.
(and-let*): New macro.
(if-let, when-let): Mark obsolete.  Redefine in terms of if-let*, so
they implicitly gain the new features without breaking existing code.
* test/lisp/emacs-lisp/subr-x-tests.el: Adjust tests for: lack of
single-tuple special case, lack of binding solitary symbols to nil,
and the introduction of uninterned symbols for (EXPR) bindings.  Add
SRFI-2 test suite adapted to Elisp.
2017-09-12 13:18:06 -04:00
Mark Oteiza
35c893ddaf Move gensym to core Elisp
* doc/lispref/symbols.texi (Creating Symbols): Mention gensym right
after make-symbol.
* etc/NEWS: Mention.
* lisp/emacs-lisp/cl-macs.el (cl--gensym-counter): Alias to
gensym-counter.
(cl-gensym): Alias to gensym.
* lisp/emacs-lisp/cl.el: Remove gensym from list of aliases.
* lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper):
* lisp/emacs-lisp/ert-x.el (ert-with-message-capture):
(ert--expand-should-1, ert--expand-should):
(ert--should-error-handle-error):
* lisp/emacs-lisp/generator.el (cps--gensym):
* lisp/emacs-lisp/gv.el (setf):
* lisp/emacs-lisp/inline.el (inline--do-letlisteval):
* lisp/emacs-lisp/pcase.el (pcase--make-docstring, pcase-dolist):
(pcase--funcall, pcase--u1): Use gensym.
* lisp/subr.el (gensym-counter): New variable.
(gensym): New function, assimilated from cl-lib.
2017-09-12 11:08:00 -04:00
Mark Oteiza
2ae46b4c0d Fix cl-gentemp
* lisp/emacs-lisp/cl-macs.el (cl--gentemp-counter): New variable.
(cl-gentemp): Use it.  Change prefix to "T".
2017-09-12 11:00:58 -04:00
Mark Oteiza
370e04fbb2 Add cl-print method for hash tables
* lisp/emacs-lisp/cl-print.el (cl-print-object): New method.
2017-09-11 22:20:41 -04:00
Mark Oteiza
8130186cfb Add docstrings to cl-print entry points
* lisp/emacs-lisp/cl-print.el (cl-print-compiled): Fix docstring.
(cl-prin1, cl-prin1-to-string): Add docstrings.
2017-09-11 22:16:14 -04:00
Mark Oteiza
f6474b4808 ; Fix previous commit
The printer otherwise includes the 0x prefix.
* lisp/emacs-lisp/cl-print.el: Add 0x to format.
2017-09-11 21:23:38 -04:00
Mark Oteiza
a66155555b Include sxhash of object with printed bytecode
This printing, while succint, is rather opaque.  At least give an
immediate clue of whether different byte code printouts are for the
same or different byte code objects.
* lisp/emacs-lisp/cl-print.el (cl-print-object): Add object sxhash to
printed token "#<bytecode>".
2017-09-11 16:06:06 -04:00
Glenn Morris
01a82957d2 ; * lisp/emacs-lisp/ert.el (ert-batch-backtrace-right-margin): Fix tag. 2017-09-05 20:53:57 -04:00
Glenn Morris
52c9c6b9d8 Allow customizing line length of ert backtraces in batch mode
* lisp/emacs-lisp/ert.el (ert-batch-backtrace-right-margin):
Make it a user option.
(ert-run-tests-batch): Handle ert-batch-backtrace-right-margin nil.
2017-09-05 20:40:10 -04:00
Mark Oteiza
55ac7505a0 Turn off checkdoc complaint about default argument order
* etc/NEWS: Mention change.
* lisp/emacs-lisp/checkdoc.el (checkdoc-arguments-in-order-flag):
Disable by default, note version.
2017-09-01 17:31:45 -04:00
Noam Postavsky
160295867d Support lazy loading for autogenerated usage docstrings too (Bug#27748)
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
Consider any documentation that ended up in code as a docstring (e.g.,
autogenerated (fn ARG1 ARG2) type things), not just what the user
passed.
2017-08-30 20:07:39 -04:00
Noam Postavsky
bc5d96a0b2 Drop docstrings from cl-defsubst produced inline bodies (Bug#27748)
* lisp/emacs-lisp/cl-macs.el (cl-defsubst): Use macroexp-parse-progn
to drop the docstring.  Add a simple docstring to the compiler-macro.
2017-08-30 20:07:39 -04:00
Noam Postavsky
112fbe3515 Minor simplification for byte-compile-constant-push
* lisp/emacs-lisp/bytecomp.el (byte-compile-constant): Move the meat
of the code from here...
(byte-compile-constant-push): ... to here.  No need to bind
byte-compile--for-effect anymore.
2017-08-29 22:58:50 -04:00
Paul Eggert
231bfd6818 Fix over-protection of byte-compiled files
Problem reported by Sven Joachim (Bug#28244).
Also, fix similar problem for autoload files.
* lisp/emacs-lisp/autoload.el (autoload--save-buffer):
Set temp file modes to the buffer-file-name file modes (or 666
if not available) as adjusted by umask.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Set temp file modes to 666 as adjusted by umask.
2017-08-26 23:07:58 -07:00
Stefan Monnier
1bd1658111 * lisp/emacs-lisp/package.el: Don't let failure stop us
(package-activate-1): Don't throw an error for missing deps.
(package-unpack): Don't bother compiling if activation failed.
(package-initialize): Report failures but keep activating other packages.
2017-08-25 02:10:53 -04:00
Dmitry Gutov
7ef0b5f611 Simplify eldoc-message
* lisp/emacs-lisp/eldoc.el (eldoc-message): Simplify.
Don't use ARGS because no callers pass them.  Discussed in bug#27230.
2017-08-21 00:42:41 +03:00
Noam Postavsky
2326a3ab13 Stop printing '4' in .elc files after 'define-symbol-prop' calls
* lisp/emacs-lisp/bytecomp.el (byte-compile-define-symbol-prop):
Return nil in case we have compiled the form, to prevent a redundant
constant from getting added to the compiled output.
2017-08-19 23:29:28 -04:00
Eli Zaretskii
2c77213738 Improve support of display-line-numbers in package.el
* lisp/emacs-lisp/package.el (package-menu--refresh): Redisplay
the header.  (Bug#27895)
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-line-number-width): Fix the case when
display-line-numbers is nil.
2017-08-19 14:05:51 +03:00
Eli Zaretskii
5070717802 ; Fix last change
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-line-number-width): Fix last change.
2017-08-19 13:52:02 +03:00
Eli Zaretskii
1e2fbb5e63 Improve support of display-line-numbers in tabulated-list-mode
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-line-number-width): New function.
(tabulated-list-init-header, tabulated-list-print-entry): Use it.
(Bug#27895)
2017-08-19 13:37:31 +03:00
Eli Zaretskii
a955d79516 Adapt tabulated list when display-line-number is turned on
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Add
a hook to revert the display when display-line-numbers is turned
on.  (Bug#27895)
2017-08-12 12:45:05 +03:00
Alexander Gramiak
84288cf421 Add new face 'header-line-highlight'
* lisp/faces.el: Define the face.
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header):
* lisp/info.el (Info-fontify-node): Use the new face.
* doc/emacs/display.texi (Standard Faces):
* etc/NEWS: Document the new face.  (Bug#28033)
2017-08-12 10:12:36 +03:00
Noam Postavsky
79a74568e9 Don't define gv expanders in compiler's runtime (Bug#27016)
This prevents definitions being compiled from leaking into the current
Emacs doing the compilation.
* lisp/emacs-lisp/gv.el (gv-define-expander): Use function-put instead
of `put' with `eval-and-compile'.
* test/lisp/emacs-lisp/gv-tests.el: New tests.
2017-08-07 18:54:49 -04:00
Noam Postavsky
b5c8e9898d Let the cl-typep effects of defclass work during compilation (Bug#27718)
* lisp/emacs-lisp/eieio.el (defclass): Use `define-symbol-prop'
instead of `put'.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el
(eieio-tests--dummy-function): Remove.
(eieio-test-25-slot-tests, eieio-test-23-inheritance-check): Don't
expect to fail if compiled.
2017-08-07 18:54:49 -04:00
Stefan Monnier
cc30d77ecd Let `define-symbol-prop' take effect during compilation
* src/fns.c (syms_of_fns): New variable `overriding-plist-environment'.
(Fget): Consult it.
* lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Let-bind
it to nil.
(byte-compile-define-symbol-prop): New function, handles compilation
of top-level `define-symbol-prop' and `function-put' calls by putting
the symbol setting into `overriding-plist-environment'.

Co-authored-by: Noam Postavsky <npostavs@gmail.com>
2017-08-07 18:54:49 -04:00
Noam Postavsky
0508045ed7 Don't error on circular values in testcover
* lisp/emacs-lisp/testcover.el (testcover-after, testcover-1value):
Consider circular lists to be non-equal instead of signaling error.
2017-08-07 18:54:44 -04:00
Alexander Gramiak
054c198c12 Catch argument and macroexpansion errors in ert
This kludge catches errors caused by evaluating arguments in ert's
should, should-not, and should-error macros; it also catches
macroexpansion errors inside of the above macros (Bug#24402).

* lisp/emacs-lisp/ert.el: (ert--should-signal-hook): New function.
(ert--expand-should-1): Catch macroexpansion errors.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-should-error-argument)
(ert-test-should-error-macroexpansion): Tests for argument and
expansion errors.
2017-08-07 18:43:54 -04:00
Paul Eggert
785a4a1d52 Fix a couple of make-temp-file races
* lisp/emacs-lisp/autoload.el (autoload--save-buffer):
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Use make-temp-file, not make-temp-name, to avoid an unlikely race
that could lose data.  Remove the deletion hook as quickly as
possible after the file is renamed; though a race still remains
here, it is smaller than before.
2017-08-05 21:28:09 -07:00
Eli Zaretskii
c3ac93bb9f Make header line in some modes be sensitive to display-line-numbers
* lisp/ruler-mode.el (ruler-mode-ruler, ruler-mode-window-col):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header)
(tabulated-list-print-entry): Account for the width taken by
line-number display.  (Bug#27895)
2017-08-05 14:22:04 +03:00
Noam Postavsky
12d7757a79 ; * lisp/emacs-lisp/re-builder.el: Fix commentary (Bug#27947). 2017-08-04 18:36:05 -04:00
Toby S. Cubitt
4b7f822cd5 Implement iterator generator for avl-trees.
* lisp/emacs-lisp/avl-tree.el (avl-tree-iter): New iter-defun.
2017-08-04 20:39:05 +01:00
Stefan Monnier
bfb8d33fd1 * lisp/subr.el (define-symbol-prop): New function
(symbol-file): Make it find symbol property definitions.

* lisp/emacs-lisp/pcase.el (pcase-defmacro):
* lisp/emacs-lisp/ert.el (ert-set-test): Use it instead of `put'.
(ert-describe-test): Adjust call to symbol-file accordingly.
2017-07-28 12:02:01 -04:00
Stefan Monnier
b2225a374f * lisp/subr.el (method-files): Move function to cl-generic.el
* lisp/emacs-lisp/cl-generic.el (cl-generic-p): New function.
(cl--generic-method-files): New function, moved from subr.el.
* lisp/emacs-lisp/edebug.el (edebug-instrument-function): Use them.
* test/lisp/emacs-lisp/cl-generic-tests.el:
* test/lisp/subr-tests.el: Move and adjust method-files tests accordingly.
2017-07-28 11:28:48 -04:00