Vincent Belaïche [Wed, 30 Dec 2015 23:10:37 +0000 (00:10 +0100)]
Correct ses-rename-cell cursor-intangible text prop updating.
There were two problems:
- First ses-rename-cell has to work when called non interactively
(with non-nil CELL argument), so in this case the start pos of
put-text-property cannot be plainly (point), you need a
ses-goto-print call before
- Second, the range itself was computed erronously, only the first
char was affected instead of the full cell width. This was not
noticeable prior to changes (Deprecate `intangible' and
`point-entered' properties) made by Stefan on 2015-04-13T19:51:15Z
* lisp/ses.el (ses-rename-cell): Correct computation of position range
to which the 'cursor-intangible text property has to be set to cell
new name.
Vincent Belaïche [Wed, 30 Dec 2015 11:37:54 +0000 (12:37 +0100)]
Don't fake empty cells value by "" when printing with a lambda.
When using a lambda expression printer function the user should be
free to format differently a really empty cell, ie. containing nil,
from a cell containing an empty string "".
* ses.el (ses-call-printer): Replace `(or value "")' by just `value'
in the case of a lambda expression printer function.
* ses.texi (Printer functions): Add example and description about
lambda expression printer function handling all the possible values,
including unexpected ones.
Vincent Belaïche [Wed, 30 Dec 2015 10:57:29 +0000 (11:57 +0100)]
Quick temporary hack to fix curcell refreshing.
The problem was caused by change: 2015-04-13 Deprecate `intangible'
and `point-entered' properties. The problem is that this change has
removed the (setq ses--curcell t) setting in the ses-command-hook
function.
* ses.el (ses-check-curcell): replace `(eq ses--curcell t)' by just `t' as
a condition to call function `ses-set-curcell'. Comment this as a quick
temporary hack to make it work, as I don't know yet whether a definite
correction would be to make the ses-set-curcell at every ses-check-curcell,
or to revert to the previous approach, ie marking ses--curcell as out-of-date
at every potentially cursor motion command.
* lisp/net/eww.el (eww): Check whether the domain is
restrictive instead of the string
(http://македонија.icom.museum is restrictive even if each
part is from a different script).
* lisp/url/url-http.el (url-http-create-request): IDNA-encode
the Host: header.
* lisp/url/url-util.el (url-encode-url): Don't hex-encode
domain names, but leave them as UTF-8, so that they can be
IDNA-encoded later when contacting the host.
Thomas Riccardi [Sun, 27 Dec 2015 22:14:13 +0000 (23:14 +0100)]
Further erc asynch fixes
* lisp/erc/erc-backend.el (erc-process-sentinel-2): Make
erc-server-connect to return even if the connection is not
ready. Then erc-open and erc-server-reconnect do the
same. (bug#5650).
Identify unsafe combinations of Bcc and encryption
* 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
Alain Schneble [Fri, 25 Dec 2015 23:50:25 +0000 (00:50 +0100)]
Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
* 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.
Alain Schneble [Fri, 25 Dec 2015 23:50:13 +0000 (00:50 +0100)]
Make relative URL parsing and resolution consistent with RFC 3986 (bug#22044)
* 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.
* 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).
Sam Steingold [Tue, 22 Dec 2015 17:02:30 +0000 (12:02 -0500)]
clipboard should still work even if interprogram-* is disabled
(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.
Phillip Lord [Wed, 16 Dec 2015 23:08:17 +0000 (23:08 +0000)]
ibuffer generate autoloads to non-versioned file.
* 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.
Phillip Lord [Sat, 28 Nov 2015 23:13:24 +0000 (23:13 +0000)]
Tests now depend on source files
* test/Makefile.in: Include dependences from tests to source files.
* test/make-test-deps.emacs-lisp: New file
* .gitignore: Ignore generated make include file
Stefan Monnier [Mon, 30 Nov 2015 15:52:12 +0000 (10:52 -0500)]
* lisp/progmodes/which-func.el: Improve disabling the mode
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.
Eli Barzilay [Sun, 29 Nov 2015 20:24:27 +0000 (15:24 -0500)]
* lisp/calculator.el: more improvements and bugfixes.
- 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.
Eli Barzilay [Fri, 27 Nov 2015 15:21:30 +0000 (10:21 -0500)]
* lisp/calculator.el: Re-do key bindings.
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'.