Paul Eggert [Thu, 1 Aug 2019 22:34:35 +0000 (15:34 -0700)]
Fix two parse-time-months invalid assumptions
* lisp/gnus/nnimap.el: Do not require parse-time.
* lisp/gnus/nnimap.el (nnimap-find-expired-articles):
* lisp/net/pop3.el (pop3-make-date):
Just use system-time-locale and format-time-string; no need to
refer to parse-time-months.
* lisp/net/pop3.el (parse-time-months): Remove defvar.
* lisp/net/tramp-smb.el (tramp-smb-read-file-entry):
Add FIXME comment about this.
Fix proposed by Martin Rudalics <rudalics@gmx.at> in:
https://lists.gnu.org/archive/html/emacs-devel/2008-12/msg00945.html
* lisp/image-file.el (image-file-yank-handler): Handle case when
yank-excluded-properties is t.
Martin Rudalics [Thu, 1 Aug 2019 07:56:44 +0000 (09:56 +0200)]
Add example for removing scroll bars/fringes from mini windows (Bug#8868)
* doc/lispref/display.texi (Fringe Size/Pos): Mention example
for how to permenantly remove fringes from minibuffer windows.
(Scroll Bars): Add example for how to permanently remove
scroll bars and fringes from minibuffer windows.
Restore `replace-region-contents' in json-pretty-print
* lisp/json.el (json-pretty-print): Switch back to using
`replace-region-contents' to preserve markers and fonts which went
missing when fixing the bug
(bug#34160).
(json-pretty-print-max-secs): Restore, too.
`decoded-time-set-defaults' refactored out from iso8601 code
* lisp/calendar/iso8601.el (iso8601--encode-time):
* lisp/calendar/time-date.el (decoded-time-set-defaults):
Refactor out from `iso8601--encode-time', because it's helpful
in other contexts.
Michael Albinus [Wed, 31 Jul 2019 19:22:48 +0000 (21:22 +0200)]
Call file notification actions properly in filenotify-tests.el
* test/lisp/filenotify-tests.el (file-notify--test-wait-for-events):
Rename from `file-notify--wait-for-events'. Adapt all callees.
(file-notify--test-cleanup): Reset also `file-notify--test-event'
and `file-notify--test-file nil'.
(file-notify--test-event-desc, file-notify--test-event-action):
New accessor functions.
(file-notify-test02-rm-watch, file-notify--test-event-test)
(file-notify--test-with-actions-check)
(file-notify--test-with-actions-explainer): Use them.
(file-notify--test-with-actions-check)
(file-notify--test-with-actions-explainer)
(file-notify--test-with-actions): Rename them from *-events-*.
Rename also internal variables accordingly. Adapt all callees.
Michael Albinus [Wed, 31 Jul 2019 19:22:05 +0000 (21:22 +0200)]
Distinguish different file notification events
* lisp/filenotify.el (file-notify--watch): Add docstring.
(file-notify-descriptors, file-notify--rm-descriptor)
(file-notify--pending-rename): Adapt docstring.
(file-notify): New defstruct.
(file-notify-handle-event): Rename argument to OBJECT. Use
accessor functions of the defstruct.
Stefan Monnier [Wed, 31 Jul 2019 15:19:39 +0000 (11:19 -0400)]
* src/lread.c (infile): Set/reset it like a dynamically scoped variable
I've seen segfaults where `infile` is nil when we get to
readbyte_from_file, presumably because Fload set it to NULL (via
close_infile_unwind) just before returning to its caller which was
probably itself within another read/load and for some reason
readevalloop didn't get to re-set `infile` like it used to do at every
iteration. I was not able to really track down the bug, but the way
`infile` was set/reset seemed fragile and managing it like a standard
dynamically-scoped var seems both safer (and more efficient since we
don't need readevalloop to constantly re-set it).
(readchar): Assert that `infile` is set if using a function the depends on it.
(readbyte_from_file): Assert that `infile` is set.
(close_infile_unwind): Reset `infile` to its previous value rather than
to NULL.
(Fload): Remember the previous value of `infile` before chaning it.
(readevalloop): Don't set `infile` any more.
* doc/lispref/positions.texi (List Motion): Remove xref, the text it
references was removed in 2018-02-15 "Document
open-paren-in-column-0-is-defun-start being of less importance".
Stefan Monnier [Tue, 30 Jul 2019 20:37:01 +0000 (16:37 -0400)]
* lisp/gnus/message.el: Reduce redundancy with send-mail-function
(message-send-mail-function) <function>: Remove `local-library` tests
for libs distributed with Emacs.
(message-use-send-mail-function): New function.
(message-default-send-mail-function): Default to it, and remove cases
already handled by it.
(message--default-send-mail-function): New function.
(message-send-mail-function) <variable>: Use it as new default.
(message-sendmail-f-is-evil): Obey mail-specify-envelope-from if available.
(message-check, message-with-reply-buffer): Use `declare`.
(message-smtpmail-send-it): smtpmail accepts mail-header-separator,
so simplify and declare obsolete.
(message-send-mail-with-mailclient): Declare obsolete.
(message-check-news-body-syntax): Don't presume that the checksum is
a fixnum.
Guard against flymake-no-changes-timeout being nil
* test/lisp/progmodes/flymake-tests.el
(flymake-tests--wait-for-backends): Guard against
flymake-no-changes-timeout being nil (in personal configurations)
to help when running tests interactively.
* lisp/gnus/gnus-sum.el (gnus-summary-widget-forward)
(gnus-summary-button-forward, gnus-summary-widget-backward)
(gnus-summary-button-backward, gnus-collect-urls-primary-text)
(gnus-collect-urls, gnus-summary-browse-url): Stop using widgets
and star using button.el buttons instead.
* lisp/gnus/mm-decode.el (mm-shr, mm-handle-filename): Don't
convert shr buttons into widgets.
* doc/lispref/display.texi (Button Buffer Commands)
(Button Buffer Commands): Document this.
* lisp/button.el (backward-button, forward-button): Accept a
NO-ERROR parameter.
(button-activate): Make it possible to have specific data in the
callback action.
* doc/emacs/programs.texi (Left Margin Paren): Add index for "\( in
strings".
* doc/lispref/positions.texi (List Motion): Add index, and cross
reference.
Make description of text properties on the form `(string ...)' work
* lisp/descr-text.el (describe-property-list): Don't special-case
for symbols that have widget properties here (bug#22957). It's
not documented that this function should do that, and looking at
the code, it doesn't seem like this function is actually used for
doing that, either. This makes describing some text properties
that are on the form `(string ...)' work.
* lisp/profiler.el (profiler--xref-backend): New function (bug#23455).
(profiler-report-mode): Use it to use the elisp xref handler when
hitting `M-.' in profiler buffers.
Stefan Monnier [Mon, 29 Jul 2019 18:59:26 +0000 (14:59 -0400)]
* lisp/progmodes/vhdl-mode.el: Use cl-lib when available
(vhdl--pushnew): New macro. Use it instead of `pushnew`.
(emacs-major-version): Don't bother checking (featurep 'xemacs)
since that is always (< emacs-major-version 25) as well.
Use it to improve the docstring of the accessor functions.
* doc/misc/cl.texi: Rename menu entry to "CL-Lib".
(Structures): Add ':documentation' and mention ':type' as well,
which we don't completely ignore any more.
* lisp/gnus/mm-decode.el (mm-display-external): Don't delete other
buffers when displaying parts (bug#22861) because that should be
up to the user, probably.
Add support for dealing with decoded time structures
* doc/lispref/os.texi (Time Conversion): Document the new
functions that work on decoded time.
(Time Calculations): Document new date/time functions.
* lisp/simple.el (decoded-time-second, decoded-time-minute)
(decoded-time-hour, decoded-time-day, decoded-time-month)
(decoded-time-year, decoded-time-weekday, decoded-time-dst)
(decoded-time-zone): New accessor functions for decoded time values.
* lisp/calendar/time-date.el (date-days-in-month)
(date-ordinal-to-time): New functions.
(decoded-time--alter-month, decoded-time--alter-day)
(decoded-time--alter-second, make-decoded-time): New functions
added to manipulate decoded time structures.
* src/timefns.c (Fdecode_time): Mention the new accessors.
* test/lisp/calendar/time-date-tests.el: New file to test the
decoded time functions and the other new functions.
* lisp/mh-e/mh-speed.el (mh-speed-parse-flists-output):
* lisp/mh-e/mh-search.el (mh-index-parse-search-regexp): Avoid
warning about `values-list' by using `cl-values-list' insead.
* lisp/net/rcirc.el (rcirc-kill-buffer-hook): Delete the process
in the buffer when killing server buffers to avoid triggering
errors from the sentinel (bug#23168).