Stefan Monnier [Tue, 31 Mar 2015 01:33:20 +0000 (21:33 -0400)]
Let jit-lock know the result of font-lock-extend-region-functions.
* lisp/jit-lock.el (jit-lock--run-functions): New function.
(jit-lock-fontify-now): Use it. Handle fontification bounds more
precisely in case the backend functions fontify more than requested.
Don't round up to whole lines since that shouldn't be needed
any more.
* lisp/font-lock.el (font-lock-fontify-region-function): Adjust docstring.
(font-lock-inhibit-thing-lock): Make obsolete.
(font-lock-default-fontify-region): Return the bounds actually used.
Alan Mackenzie [Mon, 30 Mar 2015 16:37:04 +0000 (16:37 +0000)]
Correct calculation of CC Mode's font-lock region.
* cc-mode.el (c-fl-decl-start): Renamed from c-set-fl-decl-start.
* Change
signature such that nil is returned when no declaration is found.
(c-change-expand-fl-region): Renamed from c-change-set-fl-decl-start.
This now also handles expanding the font lock region to whole lines.
(c-context-expand-fl-region): Renamed from c-context-set-fl-decl-start.
This now also handles expanding the font lock region to whole lines.
(c-font-lock-fontify-region): When a change font lock region is
spuriously enlarged to the beginning-of-line by jit-lock, fontify the
extra bit separately from the region calculated by CC Mode.
(c-extend-after-change-region): Explicitly apply 'fontified properties
to
the extended bits of the font lock region.
* cc-langs.el (c-before-font-lock-functions)
(c-before-context-fontification-functions): Use new names for existing
functions (see above).
Richard Ryniker [Mon, 30 Mar 2015 15:38:25 +0000 (17:38 +0200)]
In sendmail-send-it don't switch to non-existent buffer. (Bug#20211)
* mail/sendmail.el (sendmail-send-it): Do not attempt to switch
to non-existent buffer (errbuf is not created when customization
variable mail-interactive is nil). (Bug#20211)
Paul Eggert [Sun, 29 Mar 2015 21:24:19 +0000 (14:24 -0700)]
Merge from origin/emacs-24
4d2e7e1 Fixes: debbugs:19175 2e0cfcc Fix the preamble text of the DIR file we install (Bug#20213) 22ece83 src/w32proc.c: Describe in a comment w32 subprocess implementation.
Paul Eggert [Sun, 29 Mar 2015 21:14:15 +0000 (14:14 -0700)]
Merge from origin/emacs-24
5e0314f * smie.el (smie*ward-sexp-command): Don't pretend the arg is optional 13cf575 Don't round up scroll bar width with GTK3 (Bug#20182). 921dd0d * doc/lispref/objects.texi (Equality Predicates): Fix typo in example.
Paul Eggert [Sun, 29 Mar 2015 20:03:55 +0000 (13:03 -0700)]
Fix 'commit-msg' to cite 'CONTRIBUTE'
As suggested in:
http://lists.gnu.org/archive/html/emacs-devel/2015-03/msg00947.html
Also, have the two files match better.
* CONTRIBUTE: Match what's in build-aux/git-hooks/commit-msg.
* build-aux/git-hooks/commit-msg: Mention 'CONTRIBUTE'.
Tom Willemse [Sat, 28 Mar 2015 14:43:33 +0000 (14:43 +0000)]
New `electric-pair-local-mode'
Fixes: big#19528
* lisp/elec-pair.el (electric-pair-local-mode): New command.
(electric-pair-mode): Mention `electric-pair-local-mode' in the
docstring.
Paul Eggert [Fri, 27 Mar 2015 19:10:44 +0000 (12:10 -0700)]
Avoid some core dumps in X session management
Derived from a bug report by Nicolas Richard in:
http://bugs.gnu.org/20191#20
* xsmfns.c (smc_save_yourself_CB): Don't dump core if
invocation-name is not a string. Initialize user-login-name if it
is not already initialized, and don't dump core if it is not a
string.
(create_client_leader_window): Don't dump core if x-resource-name
and x-resource-class are not both strings.
(x_session_initialize): Don't dump core if x-session-previous-id,
invocation-directory, and invocation-name are not strings.
Paul Eggert [Fri, 27 Mar 2015 18:57:44 +0000 (11:57 -0700)]
Port user-login-name initialization to Qnil == 0
* editfns.c (Fuser_login_name, Fuser_real_login_name)
(syms_of_editfns): Don't rely on all-bits-zero being an Elisp integer,
as this is no longer true now that Qnil == 0.
Paul Eggert [Fri, 27 Mar 2015 18:14:14 +0000 (11:14 -0700)]
Port etags to -DDEBUG
* etags.c (xnew, xrnew) [DEBUG]: Don't include chkmalloc.h, which
is not part of Emacs and is typically not installed.
Instead, just invoke xmalloc and xrealloc as usual.
Problem reported by Nicolas Richard in:
http://bugs.gnu.org/20191#20
(xrnew): Avoid no-longer-needed cast to 'char *'.
(xrealloc): First arg is now void *, not char *.
Paul Eggert [Fri, 27 Mar 2015 17:36:15 +0000 (10:36 -0700)]
Assume !BROKEN_NON_BLOCKING_CONNECT
From a suggestion by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-03/msg00824.html
* process.c (NON_BLOCKING_CONNECT): Simplify by assuming that
BROKEN_NON_BLOCKING_CONNECT is not defined.
(SELECT_CAN_DO_WRITE_MASK): Remove, and assume it's now true.
Eli Zaretskii [Fri, 27 Mar 2015 13:16:36 +0000 (16:16 +0300)]
Fix crashes when restoring sub-char-tables from desktop file
src/lread.c (substitute_object_recurse): For sub-char-tables, start
the recursive SUBSTITUTE loop from index of 2, to skip the
non-Lisp members of the sub-char-table. See the discussion at
http://lists.gnu.org/archive/html/emacs-devel/2015-03/msg00520.html
for the details.
Eli Zaretskii [Fri, 27 Mar 2015 09:44:31 +0000 (12:44 +0300)]
Support non-blocking connect on MS-Windows (Bug#20207)
Based on ideas from Kim F. Storm <storm@cua.dk>, see
http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg00873.html.
src/w32proc.c (reader_thread): If the FILE_CONNECT flag is set, call
'_sys_wait_connect'. If it returns STATUS_CONNECT_FAILED, exit
the thread with code 2.
(sys_select): Support 'wfds' in addition to 'rfds'. If a
descriptor in 'wfds' has its bit set, but the corresponding
fd_info member doesn't have its FILE_CONNECT flag set, ignore the
descriptor. Otherwise, acknowledge a successful non-blocking
connect by resetting the FILE_CONNECT flag and setting cp->status
to STATUS_READ_ACKNOWLEDGED.
src/w32.h (STATUS_CONNECT_FAILED): New enumeration value.
(struct _child_process): New member 'errcode'.
(FILE_CONNECT): New flag.
(_sys_wait_connect): Add prototype.
src/w32.c (pfn_WSAEnumNetworkEvents): New function pointer.
(init_winsock): Load WSAEnumNetworkEvents from winsock DLL.
(set_errno): Map WSAEWOULDBLOCK and WSAENOTCONN.
(sys_connect): Support non-blocking 'connect' calls by setting the
FILE_CONNECT flag in the fd_info member and returning EINPROGRESS.
(_sys_read_ahead): Add debug message if this function is called
for a descriptor that waits for a non-blocking connect to complete.
(_sys_wait_connect): New function.
(sys_read): Support STATUS_CONNECT_FAILED. Return the error code
recorded by _sys_wait_connect when the non-blocking connect
failed. Don't call WSAGetLastError before a call to set_errno had
a chance to use its value, since WSAGetLastError clears the last
error.
Wolfgang Jenkner [Fri, 27 Mar 2015 01:54:39 +0000 (02:54 +0100)]
Preserve face text properties in comint prompt.
Fixes: debbugs:20084
* lisp/font-lock.el (font-lock--remove-face-from-text-property): New
function. Adapted from the previously commented out
remove-single-text-property.
Remove previously unused and commented out auxiliary function
remove-text-property and obsolete comment.
* lisp/comint.el (comint-output-filter): Use it to remove
comint-highlight-prompt.
(comint-snapshot-last-prompt, comint-output-filter): Use
font-lock-prepend-text-property for comint-highlight-prompt.
* test/automated/textprop-tests.el: New file.
(textprop-tests-font-lock--remove-face-from-text-property): New test.
Thus, the original face text property of a prompt "candidate" (the
last line of an output chunk not ending with a newline) is
preserved. This amends the fix for bug#14744.
Stefan Monnier [Thu, 26 Mar 2015 19:17:51 +0000 (15:17 -0400)]
(url-insert-file-contents): Set buffer-file-coding-system
Fixes: debbugs:20010
* lisp/url/url-handlers.el (url-insert-file-contents): Call
after-insert-file-set-coding like insert-file-contents, to set
buffer-file-coding-system. [Backport]
Dmitry Gutov [Wed, 25 Mar 2015 19:54:29 +0000 (21:54 +0200)]
Only escape quotation mark, backslash and cntrl U+0000 to U+001F
* lisp/json.el (json-special-chars): Don't treat `/' specially, there's
no need to.
(json-encode-string): Only escape quotation mark, backslash and
the control characters U+0000 to U+001F.
Olaf Rogalsky [Wed, 25 Mar 2015 01:04:00 +0000 (21:04 -0400)]
* lisp/xt-mouse.el: Add mouse-tracking support.
Fixes: debbugs:19416
* lisp/xt-mouse.el: Add mouse-tracking support.
(xterm-mouse-translate-1): Handle mouse-movement events.
(xterm-mouse--read-event-sequence-1000)
(xterm-mouse--read-event-sequence-1006): Delete functions.
(xterm-mouse--read-event-sequence): New function that handles both at
the same time. Handle mouse-movements.
(xterm-mouse--read-utf8-char, xterm-mouse--read-number-from-terminal):
New functions.
(xterm-mouse-event): Simplify.
(xterm-mouse-tracking-enable-sequence)
(xterm-mouse-tracking-disable-sequence): Enable mouse tracking.
* lisp/mouse.el (mouse-drag-line): Also ignore `vertical-line' prefix events.
Michael Albinus [Tue, 24 Mar 2015 19:05:00 +0000 (20:05 +0100)]
Improve special char handling in Tramp
* net/tramp-sh.el (tramp-do-file-attributes-with-ls)
(tramp-do-file-attributes-with-stat): Quote file names in output.
(tramp-do-directory-files-and-attributes-with-stat): Use "//" as marker.
Paul Eggert [Tue, 24 Mar 2015 18:42:53 +0000 (11:42 -0700)]
Fix minor ldexp issues
* doc/lispref/numbers.texi (Float Basics): Improve ldexp documentation.
* src/floatfns.c (Fldexp): Require 2 args. Avoid undefined behavior
if the exponent is out of 'int' range. Improve documentation. Fixes: bug#20185
Stefan Monnier [Mon, 23 Mar 2015 22:24:30 +0000 (18:24 -0400)]
Add new `cl-struct' and `eieio' pcase patterns.
* lisp/emacs-lisp/cl-macs.el (cl-struct): New pcase pattern.
* lisp/emacs-lisp/eieio.el (eieio-pcase-slot-index-table)
(eieio-pcase-slot-index-from-index-table): New functions.
(eieio): New pcase pattern.
* lisp/emacs-lisp/pcase.el (pcase--make-docstring): New function.
(pcase): Use it to build the docstring.
(pcase-defmacro): Make sure the macro is lazy-loaded.
(\`): Move its docstring from `pcase'.
Paul Eggert [Mon, 23 Mar 2015 17:30:33 +0000 (10:30 -0700)]
Merge from origin/emacs-24
ad89f85 Another minor improvement in ELisp manual (Bug#20168) 5e2951b Improve docs of 'posn-actual-col-row' (Bug#20169) 1291ce1 Minor documentation fix in ELisp manual (Bug#20174) 33e2236 * display.texi (Useless Whitespace): Fix thinko. ff3878d * configure.ac: Fix jpeg version check to work with gcc >= 5. 90b46f5 Work for the case nnmail-expiry-target is an nnmh group (bug#20170) e7f92aa authors.el small additions 0bfe915 * etc/PROBLEMS: Add entry about dir-locals and some auto-mounters. c3c4b75 Fixes: debbugs:18939
Paul Eggert [Mon, 23 Mar 2015 17:14:01 +0000 (10:14 -0700)]
Merge from origin/emacs-24
The following commits were skipped:
17ad6f8 Fix problems caused by calling 'recenter' in auto-revert (Bug#20122) 1c4900d Backport: ruby-mode: Detect regexps after `!' f74843a Backport: ruby-mode: Change faces used for self, true, false and nil a5d1f94 Backport: ruby-mode: Expect regexp after { or | too
Have `sgml-attribute-offset' control SGML attribute indentation
Fixes: debbugs:20161
* textmodes/sgml-mode.el (sgml-attribute-offset): New defcustom.
(sgml-calculate-indent): Use `sgml-attribute-offset' for attribute
indentation.