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.
Alan Mackenzie [Mon, 16 Mar 2015 14:48:09 +0000 (14:48 +0000)]
Make Edebug work with Follow Mode.
* emacs-lisp/edebug.el (edebug--display-1): Remove call to
edebug-adjust-window.
(edebug--recursive-edit): Don't bind pre/post-command-hooks to nil
over the recursive edit.
(edebug-adjust-window): Remove.
Stefan Monnier [Sun, 15 Mar 2015 18:21:04 +0000 (14:21 -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.
Eli Zaretskii [Sun, 15 Mar 2015 17:17:46 +0000 (19:17 +0200)]
Fix subtle problems with linum-mode and invisible text
src/xdisp.c (handle_invisible_prop): Fix up it->position even when
we are going to load overlays at the beginning of the invisible
text.
(setup_for_ellipsis): Reset the ignore_overlay_strings_at_pos_p
flag also here.
(next_overlay_string): Set the overlay_strings_at_end_processed_p
flag only if the overlays just processed were actually loaded at
EOB.
Michael Albinus [Sun, 15 Mar 2015 15:07:03 +0000 (16:07 +0100)]
In Tramp. check ssh Control* options only when needed
Fixes: debbugs:20015
* net/tramp-adb.el:
* net/tramp-gvfs.el:
* net/tramp-sh.el:
* net/tramp-smb.el: Set tramp-autoload cookie for all defcustoms.
* net/tramp-sh.el (tramp-use-ssh-controlmaster-options):
New defcustom, moved from tramp.el.
(tramp-ssh-controlmaster-options): New defvar, moved from tramp.el
but with a nil initial value.
(tramp-ssh-controlmaster-options): New defun.
(tramp-do-copy-or-rename-file-out-of-band)
(tramp-maybe-open-connection): Use it.
* net/tramp.el (tramp-ssh-controlmaster-options)
(tramp-use-ssh-controlmaster-options): Move them to tramp-sh.el.
(tramp-default-method): Do not check for
`tramp-ssh-controlmaster-options'.
Tassilo Horn [Sat, 14 Mar 2015 08:27:31 +0000 (09:27 +0100)]
Font-lock elisp macros/special forms dynamically
* emacs-lisp/lisp-mode.el (lisp--el-macro-regexp): New defconst.
(lisp--el-update-macro-regexp, lisp--el-update-after-load)
(lisp--el-match-macro): New functions.
(lisp-mode-variables): Update lisp--el-macro-regexp and add
lisp--el-update-after-load to after-load-functions.
Support indenting backquote substitutions in cl-indent
* lisp/emacs-lisp/cl-indent.el
(lisp-indent-backquote-substitution-mode): New user option.
(common-lisp-indent-function-1, common-lisp-loop-part-indentation)
(common-lisp-indent-function): Support normally indenting
backquote substitutions.
(extended-loop-p): Rename to `lisp-extended-loop-p'.
* lisp/widget.el (define-widget): Check that documentation is a string
or nil; prevent wailing and gnashing of teeth when users forget to
pass a docstring and wonder why their properties don't work.
Eli Zaretskii [Sat, 14 Mar 2015 17:30:36 +0000 (19:30 +0200)]
Improve indexing in Emacs manual (Bug#20105)
doc/emacs/basic.texi (Moving Point): Improve indexing for HOME and END.
doc/emacs/cmdargs.texi (General Variables): Improve indexing for
environment variables.
doc/emacs/msdog.texi (Windows HOME):
doc/emacs/msdog-xtra.texi (MS-DOS File Names): Remove markup from HOME in
the index entries.