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.
Eli Zaretskii [Sat, 21 Mar 2015 15:44:00 +0000 (17:44 +0200)]
Fix problems with setting system-time-locale on MS-Windows
src/emacs.c (synchronize_locale) [WINDOWSNT]: Ignore 'category' and
always use LC_ALL instead. Fixes problems with setting
system-time-locale to something non-default.
Dmitry Gutov [Fri, 20 Mar 2015 05:03:54 +0000 (07:03 +0200)]
ruby-mode: Fix a "required arguments" confusion
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Move `at_exit'
and `callcc' to the "methods with required arguments" section,
they need a block argument. Remove a `throw' duplicate.
Dmitry Gutov [Fri, 20 Mar 2015 04:04:54 +0000 (06:04 +0200)]
Backport: ruby-mode: Change faces used for self, true, false and nil
Fixes: debbugs:17733
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Use
`font-lock-constant-face' for nil, true and false. Highlight
`self' as a keyword.
Paul Eggert [Thu, 19 Mar 2015 21:14:07 +0000 (14:14 -0700)]
Better port of pthread usage to FreeBSD
* configure.ac (ac_func_list): Omit pthread_sigmask, since
we check for that ourselves rather than relying on gnulib.
(HAVE_PTHREAD, LIB_PTHREAD, _THREAD_SAFE): Port better to FreeBSD,
by also checking for pthread_create, pthread_self, pthread_sigmask.
Tighten the test for pthread_atfork while we're at it. Fixes: bug#20136
Paul Eggert [Thu, 19 Mar 2015 19:32:42 +0000 (12:32 -0700)]
Merge from gnulib
This incorporates:
2015-03-19 fdopendir: port better to MinGW
2015-03-18 fdopendir: fix typo in comment
2015-02-24 glob, etc.: port to MSVC v18 on MS-Windows 8.1
* lib/dirent.in.h, lib/fdopendir.c: Update from gnulib.
* lib/dirfd.c, m4/dirfd.m4: New files from gnulib.
* lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
Stefan Monnier [Thu, 19 Mar 2015 03:02:26 +0000 (23:02 -0400)]
EIEIO: Change class's representation to unify instance & class slots
* lisp/emacs-lisp/eieio-core.el (eieio--class): Change field names and order
to match those of cl--class; use cl--slot for both instance slots and
class slots.
(eieio--object-num-slots): Use cl-struct-slot-info.
(eieio--object-class): Rename from eieio--object-class-object.
(eieio--object-class-name): Remove.
(eieio-defclass-internal): Adjust to new slot representation.
Store doc in class rather than in `variable-documentation'.
(eieio--perform-slot-validation-for-default): Change API to take
a slot object.
(eieio--slot-override): New function.
(eieio--add-new-slot): Rewrite.
(eieio-copy-parents-into-subclass): Rewrite.
(eieio--validate-slot-value, eieio--validate-class-slot-value)
(eieio-oref-default, eieio-oset-default)
(eieio--class-slot-name-index, eieio-set-defaults): Adjust to new
slot representation.
(eieio--c3-merge-lists): Simplify.
(eieio--class/struct-parents): New function.
(eieio--class-precedence-bfs): Use it.
* lisp/emacs-lisp/eieio.el (with-slots): Use macroexp-let2.
(object-class-fast): Change recommend replacement.
(eieio-object-class): Rewrite.
(slot-exists-p): Adjust to new slot representation.
(initialize-instance): Adjust to new slot representation.
(object-write): Adjust to new slot representation.
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-convert-list-to-object):
Manually map initargs to slot names.
(eieio-persistent-validate/fix-slot-value): Adjust to new
slot representation.
* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-specializers):
Extract from eieio--generic-static-symbol-generalizer.
(eieio--generic-static-symbol-generalizer): Use it.
* lisp/emacs-lisp/eieio-custom.el (eieio-object-value-create)
(eieio-object-value-get): Adjust to new slot representation.
* lisp/emacs-lisp/eieio-datadebug.el (data-debug/eieio-insert-slots):
Declare to silence warnings.
(data-debug-insert-object-button): Avoid `object-slots'.
(data-debug/eieio-insert-slots): Adjust to new slot representation.
* lisp/emacs-lisp/eieio-opt.el (eieio--help-print-slot): New function
extracted from eieio-help-class-slots.
(eieio-help-class-slots): Use it. Adjust to new slot representation.
* test/automated/eieio-test-methodinvoke.el (make-instance): Use new-style
`subclass' specializer for a change.
* test/automated/eieio-test-persist.el (persist-test-save-and-compare):
Adjust to new slot representation.
* test/automated/eieio-tests.el (eieio-test-17-virtual-slot): Don't use
initarg in `oset'.
(eieio-test-32-slot-attribute-override-2): Adjust to new
slot representation.
* lisp/emacs-lisp/cl-preloaded.el (cl--class): Fix type of `parents'.
Paul Eggert [Wed, 18 Mar 2015 18:45:36 +0000 (11:45 -0700)]
Merge from origin/emacs-24
1a941d6 Fix incorrect usage of @key in the User Manual (Bug#20135) 14c47d3 doc/misc/efaq-w32.texi: Spell-check. ac85901 doc/misc/efaq-w32.texi: Remove outdated information and update. c43762d Fix description of fullscreen mode on MS-Windows (Bug#20110). ea8cab3 doc/lispref/minibuf.texi (Basic Completion): Fix a typo. (Bug#20108) 2fdec80 Improve indexing in Emacs manual (Bug#20105) cc11321 Fix --no-bitmap-icon
Stefan Monnier [Wed, 18 Mar 2015 14:31:07 +0000 (10:31 -0400)]
Add classes as run-time descriptors of cl-structs.
* lisp/emacs-lisp/cl-preloaded.el (cl--struct-get-class): New function.
(cl--make-slot-desc): New constructor.
(cl--plist-remove, cl--struct-register-child): New functions.
(cl-struct-define): Rewrite.
(cl-structure-class, cl-structure-object, cl-slot-descriptor)
(cl--class): New structs.
(cl--struct-default-parent): Initialize it here.
* lisp/emacs-lisp/cl-macs.el (cl--find-class): New macro.
(cl-defsubst, cl--defsubst-expand, cl--sublis): Move before first use.
(cl--struct-default-parent): New var.
(cl-defstruct): Adjust to new representation of classes; add
default parent. In accessors, signal `wrong-type-argument' rather than
a generic error.
(cl-struct-sequence-type, cl-struct-slot-info)
(cl-struct-slot-offset): Rewrite.
* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-specializers)
(cl-generic-generalizers): Rewrite.
* src/alloc.c (purecopy): Handle hash-tables.
* lisp/emacs-lisp/debug.el (debug--implement-debug-on-entry):
Bind inhibit-debug-on-entry here...
(debug): Instead of here.
* lisp/emacs-lisp/macroexp.el (macroexp--debug-eager): New var.
(internal-macroexpand-for-load): Use it.
Tassilo Horn [Mon, 16 Mar 2015 09:25:14 +0000 (10:25 +0100)]
Improve dynamic elisp keyword font-locking
* emacs-lisp/byte-run.el (macro-declarations-alist): New
declaration no-font-lock-keyword.
(defmacro): Flush font-lock in existing elisp buffers.
* emacs-lisp/lisp-mode.el (lisp--el-update-after-load)
(lisp--el-update-macro-regexp, lisp--el-macro-regexp): Delete
functions and defconst.
(lisp--el-match-keyword): Rename from lisp--el-match-macro.
(lisp--el-font-lock-flush-elisp-buffers): New function.
(lisp-mode-variables): Remove code for updating
lisp--el-macro-regexp, and add
lisp--el-font-lock-flush-elisp-buffers to after-load-functions.
Simen Heggestøyl [Tue, 17 Mar 2015 22:11:55 +0000 (23:11 +0100)]
Update CSS property list
* textmodes/css-mode.el (css-extract-keyword-list): Remove function in
favor of manual extraction.
(css-extract-parse-val-grammar): Remove function in favor of
manual extraction.
(css-extract-props-and-vals): Remove function in favor of manual
extraction.
(css-at-ids): Update list of CSS at-rule ids.
(css-property-ids): Update list of CSS properties.
Simen Heggestøyl [Tue, 17 Mar 2015 21:58:13 +0000 (22:58 +0100)]
Add support for completion in `css-mode'
* textmodes/css-mode.el (css--complete-property): New function for
completing CSS properties.
(css--complete-pseudo-element-or-class): New function for
completing CSS pseudo-elements and pseudo-classes.
(css--complete-at-rule): New function for completing CSS at-rules.
(css-completion-at-point): New function providing completion for
`css-mode'.
(css-mode): Add support for completion.
Simen Heggestøyl [Tue, 17 Mar 2015 21:33:36 +0000 (22:33 +0100)]
Discriminate between pseudo-classes and -elements
* textmodes/css-mode.el (css--font-lock-keywords): Discriminate
between pseudo-classes and pseudo-elements.
(css-pseudo-ids): Remove.
(css-pseudo-class-ids): New variable.
(css-pseudo-element-ids): New variable.
Stefan Monnier [Tue, 17 Mar 2015 18:30:42 +0000 (14:30 -0400)]
* cl-macs.el (cl--transform-lambda): Refine last change.
Fixes: debbugs:20125
* test/automated/cl-lib-tests.el: Use lexical-binding.
(cl-lib-arglist-performance): Refine test to the case where one of the
fields has a non-nil default value. Use existing `mystruct' defstruct.
(cl-lib-struct-accessors): Use `pcase' to be a bit more flexible in the
accepted outputs.
Eli Zaretskii [Tue, 17 Mar 2015 18:29:55 +0000 (20:29 +0200)]
Resurrect the lost optional fixed font menu on w32
lisp/mouse.el (mouse-appearance-menu): If w32-use-w32-font-dialog is
nil, construct a menu of fixed fonts. This resurrects a feature
lost in Emacs 23.
lisp/w32-vars.el (w32-use-w32-font-dialog): Add a ':set' function to
reset mouse-appearance-menu-map, so the font dialog is recomputed
the next time the menu is requested.
(w32-fixed-font-alist): Fix to use correct names of Courier fonts.
Alan Mackenzie [Mon, 16 Mar 2015 22:10:00 +0000 (22:10 +0000)]
Edebug: Allow "S" to work during trace mode. Fixes debbugs #20074.
Also display the overlay arrow in go and go-nonstop modes.
* emacs-lisp/edebug.el (edebug--display-1): Move the
`input-pending' test to after trace mode's `sit-for'.
(edebug--recursive-edit): Insert "(sit-for 0)" after
"(edebug-overlay-arrow)".
Rework to avoid cl--do-arglist in more cases; add comments to explain what's
going on.
(cl--do-&aux): New function extracted from cl--do-arglist.
(cl--do-arglist): Use it.
* lisp/emacs-lisp/cl-generic.el: Add Version: header, for ELPA purposes.
* lisp/erc/erc.el (erc-switch-to-buffer): Rename from erc-iswitchb and rewrite
using read-buffer.
(erc--buffer-p): New function, extracted from erc-buffer-filter.
(erc-buffer-filter): Use it.
(erc-with-all-buffers-of-server): Silence compile warning if the return
value is unused.
(erc-is-valid-nick-p, erc-common-server-suffixes, erc-get-arglist)
(erc-command-name, erc-popup-input-buffer): Use \` and \' to match
beg/end of string.