Add a new command in *Compile-Log* buffers to re-byte-compile
* lisp/emacs-lisp/bytecomp.el (emacs-lisp-compilation-recompile):
New command (bug#4516).
(emacs-lisp-compilation--current-file)
(emacs-lisp-compilation-mode-map): New variables with new `g'
binding.
(byte-compile-log-file): Set variable so that `g' can recompile it.
Stephen Gildea [Tue, 1 Oct 2019 03:22:51 +0000 (20:22 -0700)]
Move undocumented time-stamp formats closer to format-time-string
* time-stamp.el (time-stamp-string-preprocess): Update some undocumented
formatting characters of time-stamp format for closer (still incomplete)
alignment with format-time-string. They have displayed a warning since
Emacs 20 (released in 1997), so it is unlikely anyone is using them.
* time-stamp-tests.el: Update tests to match new expectations.
Stephen Gildea [Tue, 1 Oct 2019 03:06:16 +0000 (20:06 -0700)]
time-stamp doc: recommend formats closer to format-time-string
* time-stamp.el (time-stamp-format, time-stamp-pattern): Update
recommended (documented) formats. No code changes, just documentation.
All recommended formats are compatible at least as far back as Emacs
22.1 (released in 2007) and are now closer to compatibility with
format-time-string.
* time-stamp-tests.el: Update test comments to match.
Stefan Monnier [Mon, 30 Sep 2019 19:08:41 +0000 (15:08 -0400)]
* lisp/gnus/mm-uu.el: Use lexical-binding and cl-defstruct
(mm-uu-type-alist): Make functions visible to byte-compiler.
(mm-uu-entry): New defstruct.
(mm-uu-configure): Use mapconcat.
(mm-uu-dissect): Avoid setq on `func`.
Fix problem with non-ASCII MML description strings
* lisp/gnus/mml.el (mml-insert-tag): Quote non-ASCII parameters.
(mml-insert-mime-headers): Make it possible to have non-ASCII
descriptions (bug#37555).
Make elisp- and emacs-index-search and default to the thing under point
* lisp/menu-bar.el (elisp-index-search): Default to the thing
under point interactively (bug#1119).
(emacs-index-search): Ditto.
(emacs-index--prompt): New helper function.
Refactor mm-decode and friends to be explicit about when errors happen
* lisp/gnus/mm-decode.el (mm-sec-status):
(mm-sec-error): New functions to handle decryption problems more
explicitly (bug#18393).
(mm-possibly-verify-or-decrypt): Use the `sec-error' data to
determine whether the operation failed or not.
Change the commands in image-converter--converters to lists
* lisp/image/image-converter.el (image-converter--converters):
Change format of the commands to lists.
(image-converter--probe, image-converter--convert): Adjust usages.
Stefan Monnier [Sun, 29 Sep 2019 22:15:56 +0000 (18:15 -0400)]
* lisp/nxml/rng-valid.el: Use define-minor-mode
Remove redundant `:group`s.
(rng-validate-mode): Use define-minor-mode.
(rng-validate-clear): Let-bind rng-current-schema instead of passing
a `no-change-schema` argument.
Tom Willemse [Sun, 11 Oct 2015 22:45:49 +0000 (00:45 +0200)]
Fix indenting in perl functions with doc-comments
* lisp/progmodes/perl-mode.el (perl-calculate-indent): Skip
doc-comments as well as comments and skip the entire comment, not just
the line. (Bug#21647)
Fix linear equation system solving in Calc (bug#35374)
* lisp/calc/calcalg2.el (math-try-solve-for):
To solve Ax^n=0 where A is a nonzero constant and x the variable to
solve for, solve x^n=0 instead of solving A=0 (which obviously fails)
or something equally stupid.
* test/lisp/calc/calc-tests.el (calc-test-solve-linear-system): New.
Stephen Gildea [Sat, 28 Sep 2019 22:46:27 +0000 (15:46 -0700)]
Reorganize time-stamp tests
* time-stamp-tests.el: Group tests by when the format was or will be
documented. Add tests for a few more undocumented, volatile formats.
Change AM hours test time to be a different hour from PM test time.
(Making these changes to the tests now will minimize test changes
needed later with anticipated code changes.)
Stefan Kangas [Mon, 16 Sep 2019 07:29:48 +0000 (09:29 +0200)]
Improve sorting in package list (Bug#37419)
* lisp/emacs-lisp/package.el (package-menu-mode): Allow sorting by
version or description.
(package-menu--version-predicate): Fix sorting by version.
(package-menu--description-predicate): Fix sorting by description.
(package-menu--archive-predicate): Fall back to sorting by name if
archive is the same.
(package-menu--name-predicate, package-menu--status-predicate): Add
doc string.
* etc/NEWS: Announce the above changes.
Eli Zaretskii [Sat, 28 Sep 2019 14:43:15 +0000 (17:43 +0300)]
More improvements of doc strings in text-property-search.el
* lisp/emacs-lisp/text-property-search.el (text-property-search-forward)
(text-property-search-backward): Further improvements of doc
strings. (Bug#37488)
Stefan Kangas [Fri, 13 Sep 2019 19:23:24 +0000 (21:23 +0200)]
Add bug reporting and link the manual on the about screen
* lisp/startup.el (fancy-about-text, normal-about-screen): Clarify
that "Contribute" also describes how to report bugs. Add new link
"Emacs Manual". (Bug#20697)
Don't discard customizations in progress when adding comments (Bug#5358)
* lisp/cus-edit.el (custom-comment-show): Add docstring. Save the
widget value in the :shown-value property, before redrawing.
(custom-variable-modified-p): New function, to complement the return
values of custom-variable-state.
(custom-variable-state-set): Use it.
(custom-face-value-create): Add children to the custom-face widget
before setting the state, to be able to check for user edits.
(custom-face-state-set): Check for user edits before calling
custom-face-state (bug#5358).
* test/lisp/custom-tests.el
(custom-test-show-comment-preserves-changes): New test.
* lisp/gnus/nntp.el (nntp-close-server):
* lisp/gnus/nnimap.el (nnimap-close-server):
* lisp/gnus/gnus-int.el (gnus-close-server): Take an optional DEFS
parameter to enable switching to the correct nnoo server (bug#20319)
when there's two servers with the same address.
mm-possibly-verify-or-decrypt should only issue errors when decrypting
* lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Only do
the warning about failed decryption when we're handing encrypted
parts, not when doing verification.
Stefan Kangas [Mon, 16 Sep 2019 01:48:47 +0000 (03:48 +0200)]
Add new function to clear tags in tabulated list
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-clear-all-tags):
New function to clear all tags from padding area in current buffer.
* doc/lispref/modes.texi (Tabulated List Mode): Document it.
* etc/NEWS: Announce it.
Don't indent unrelated widgets following widget of type 'other
* lisp/wid-edit.el (widget 'other): Use \n instead of the %n escape in the
:format property of this widget. If %n is used at the end of the
format string, unrelated widgets get indented. (Bug#12533)
* test/wid-edit-tests.el (widget-test-indentation-after-%n)
(widget-test-indentation-after-newline)
(widget-test-newline-and-indent-same-widget): New tests.
Michael Albinus [Thu, 26 Sep 2019 07:33:47 +0000 (09:33 +0200)]
Avoid errors in tramp-tests with a remote ksh shell
* test/lisp/net/tramp-tests.el (tramp--test-ksh-p): New defun.
(tramp-test41-utf8, tramp-test41-utf8-with-stat)
(tramp-test41-utf8-with-perl, tramp-test41-utf8-with-ls):
Skip, when remote shell is ksh.
* lisp/emacs-lisp/rx.el:
* test/lisp/emacs-lisp/rx-tests.el:
* doc/lispref/searching.texi (Rx Constructs):
Rewrite rx for correctness, clarity, and performance. The new
implementation retains full compatibility and has more comprehensive
tests.
* lisp/emacs-lisp/re-builder.el (reb-rx-font-lock-keywords):
Adapt to changes in internal variables in rx.el.
* src/search.c (Fregexp_quote): Only allocate a new string if needed.
* doc/lispref/searching.texi (Regexp Functions):
* etc/NEWS (Incompatible Lisp Changes): Document.
* lisp/wid-edit.el (widget--should-indent-p): New function, to decide
whether to indent or not.
(widget-checklist-value-add-item, widget-radio-add-item)
(widget-editable-list-format-handler)
(widget-editable-list-entry-create)
(widget-group-value-create): Use it (bug#7851).