* lisp/gnus/gnus-util.el (gnus-subsetp): New function
* lisp/gnus/mml-sec.el (mml-secure-safe-bcc-list): New variable
* lisp/gnus/mml-sec.el (mml-secure-bcc-is-safe): New function
* test/lisp/url/url-parse-tests.el: Add tests covering url-generic-parse-url.
* test/lisp/url/url-expand-tests.el: Add tests covering url-expand-file-name.
* lisp/url/url-parse.el (url-generic-parse-url): Keep empty fragment
information in URL-struct.
* lisp/url/url-parse.el (url-path-and-query): Do not artificially turn empty
path and query into nil path and query, respectively.
* lisp/url/url-expand.el (url-expander-remove-relative-links): Do not turn
empty path into an absolute ("/") path.
* lisp/url/url-expand.el (url-expand-file-name): Properly resolve
fragment-only URIs. Do not just return them unchanged.
* lisp/url/url-expand.el (url-default-expander): An empty path in the relative
reference URI should not drop the last segment.
* doc/misc/eww.texi (Basics): Mention "C".
* lisp/net/eww.el (eww-toggle-colors): New command and keystroke.
* lisp/net/shr.el (shr-use-colors): New variable.
(shr-colorize-region): Use it.
* eww.el (eww-mode): Most web pages are left-to-right, so make
that the default (bug#19801).
* shr.el (shr-tag-html): Respect "dir" attributes
(left-to-right, right-to-left).
* shr.el (shr-table-body): New function to find the real body
of a table.
(shr-tag-table): Use it to render several <tbody> tags in a
table (bug#22170).
(clipboard-yank): When `interprogram-cut-function' is nil,
bind it to `gui-selection-value' - the default value.
(clipboard-kill-region, clipboard-kill-ring-save): When
`interprogram-paste-function' is nil, bind it to `gui-select-text' -
the default value.
* lisp/Makefile.in: Add ibuffer-loaddefs to autogenel.
* lisp/ibuf-ext.el: Update file local.
* lisp/ibuffer.el: Remove autoloads and add a require.
* test/lisp/ibuffer-tests.el: Test that autoload is working.
Use lexical-binding.
(which-func-modes, which-func-non-auto-modes, which-func-maxout)
(which-func, which-func-format): Remove redundant :group arg.
(which-func-try-to-enable): New function.
(which-func-ff-hook, which-function-mode): Use it.
(mode-line-misc-info): Add ourselves here instead of in bindings.el.
* lisp/bindings.el (mode-line-misc-info): Remove which-func-mode entry.
- Mark `calculator-paste-decimals' as obsolete. (It wasn't having an
effect anyway.)
- Simplify `calculator-number-to-string' by throwing most of the work
onto `number-to-string', leaving just some tweaks for decimal inputs.
This leads to some minor changes, for example, pasting "1x1" in hex
mode would warn that "x" is ignored and result in "11" (and it wasn't
done in decimal mode), whereas now it just ignores everything from the
"x" and on and result in a "1" just like in decimal input mode. Also,
overflows are left for `number-to-string' to deal with.
- `calculator-paste' is very simple as a result.
- Extend the simplified `calculator-paste': with a prefix argument it
pastes a string as if the characters were entered. This can be used
to reduce expressions, but note that it's a simple literal operation,
so precedence can be messed, a number can be paster while entering a
number, spaces and newlines matter, etc.
- Fix a minor bug where "e+" in hex mode wouldn't use "+" as an
operator.
- Fix a bug in `calculator-put-value': avoid grouping in the display
that is used to construct `calculator-curnum'. This would trigger
when pasting or getting a value from a register in some radix mode
with a large enough value. Another fix: make the output radix equal
the input one, otherwise numbers could be converted twice.
Use a helper function that arranges a parent keymap that binds alternate
case keys so if some letter key is unbound and it's un/shifted version
is, it will get used. This makes the global-map trickery unnecessary.
Also switch to passing strings that name keys through `kbd'.