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.
Kevin Ryde [Fri, 13 Mar 2015 18:06:58 +0000 (11:06 -0700)]
info-look fixes for Texinfo 5
* info-look.el (c-mode, bison-mode, makefile-mode)
(makefile-automake-mode, texinfo-mode, autoconf-mode, awk-mode)
(latex-mode, emacs-lisp-mode, sh-mode, cfengine-mode): Match
`foo' and 'foo' and ‘foo’ for @item and similar.
(latex-mode): Match multi-arg \frac{num}{den} or \sqrt[root]{n} in
suffix regexp.
Juri Linkov [Thu, 12 Mar 2015 20:22:22 +0000 (22:22 +0200)]
Support goal column in multi-line minibuffer
* lisp/simple.el (next-line-or-history-element)
(previous-line-or-history-element): Remember the goal column of
possibly multi-line input, and restore it afterwards.
Eli Zaretskii [Thu, 12 Mar 2015 17:34:45 +0000 (19:34 +0200)]
Fix support of scripts in w32font.c (Bug#19993)
src/w32font.c (font_supported_scripts): Add subranges for Latin
Supplement, Latin Extended-A/B, Vai, Supplemental Punctuation, Tai
Le, Buginese, Yijing Hexagrams, Ancient Greek Numbers, Tai Xuan
Jing, Counting Rods, Sundanese, Lepcha, Ol Chiki, Saurashtra,
Kayah Li, Rejang, Ancient Symbols, Phistos Disc, Carian, Lycian,
Lydian, Dominoe Tiles, and Mahjong Tiles. Break the Mathematical
Alphanumeric Symbols into several "scripts" like fontset.el does.
(syms_of_w32font): DEFSYM all the new script symbols.
lisp/international/fontset.el (script-representative-chars): Add a
representative character for 'vai'.
Stefan Monnier [Wed, 11 Mar 2015 15:00:25 +0000 (11:00 -0400)]
* lisp/gnus/registry.el (registry-db): Don't oset-default an instance slot.
* lisp/gnus/gnus-registry.el (gnus-registry-handle-action)
(gnus-registry-post-process-groups): Don't add-to-list on a local var.
(gnus-registry-keywords): Make it do something.
(gnus-registry-import-eld): Remove unused var `new-entry'.
(gnus-registry-action): Remove unused var `to-name'.
(gnus-registry-make-db): Prefer `make-instance' to avoid
compiler warnings.
(gnus-registry-load, gnus-registry-fixup-registry): Avoid `oset'.
Paul Eggert [Tue, 10 Mar 2015 23:29:01 +0000 (16:29 -0700)]
Prefer "initialize" to "initialise"
* lisp/progmodes/js.el (js-indent-first-init):
Rename from js-indent-first-initialiser, to avoid worrying about
American vs British spelling. All uses changed.
* test/indent/js-indent-init-t.js: Rename from
indent/js-indent-first-initialiser-t.js.
* test/indent/js-indent-init-dynamic.js: Rename from
test/indent/js-indent-first-initialiser-dynamic.js.
* lisp/progmodes/js.el (js--proper-indentation): Add new custom option
`js-indent-first-initialiser' and a function to utilize it,
`js--maybe-goto-declaration-keyword-end'.
* test/indent/js.js: Add local variables.
* test/indent/js-indent-first-initialiser-t.js: New test for
`js-indent-first-initialiser'.
* test/indent/js-indent-first-initialiser-dynamic.js: New test for
`js-indent-first-initialiser'.
Nicolas Petton [Mon, 9 Mar 2015 11:46:29 +0000 (12:46 +0100)]
Add seq-into as a public function
* lisp/emacs-lisp/seq.el: Make seq-into a public function (replacing
seq--into)
* test/automated/seq-tests.el: Add tests for seq-into
* doc/lispref/sequences.texi: Add documentation for seq-into
Dmitry Gutov [Sun, 8 Mar 2015 20:09:32 +0000 (22:09 +0200)]
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.
Eli Zaretskii [Sat, 7 Mar 2015 10:49:54 +0000 (12:49 +0200)]
Partially revert the fix for bug #11732
src/w32fns.c <ImmReleaseContext_Proc, ImmSetCompositionWindow_Proc>:
Fix typedefs to be consistent with the corresponding w32 API
signatures.
(w32_wnd_proc) <WM_IME_STARTCOMPOSITION>: Don't invoke
DefWindowProc if we successfully handled the message, as doing so
causes problems in displaying selection dialogs.
Stefan Monnier [Sat, 7 Mar 2015 04:50:32 +0000 (23:50 -0500)]
* lisp/gnus/*registry.el: Use slot names rather than initarg names
* lisp/gnus/registry.el (registry-lookup-breaks-before-lexbind)
(registry-search, registry-delete, registry-size, registry-insert)
(registry-reindex, registry-collect-prune-candidates, registry-lookup):
* lisp/gnus/gnus-registry.el (gnus-registry-fixup-registry)
(gnus-registry-remove-extra-data): Use slot names rather than initarg
names in `oref' and `oset'.
Paul Eggert [Fri, 6 Mar 2015 23:41:09 +0000 (15:41 -0800)]
Random minor fixes for movemail
* movemail.c: Include <stdbool.h> and <signal.h>.
(waitpid) [WINDOWSNT]: New macro.
(wait) [WINDOWSNT]: Remove.
(main, popmail, pop_retr, mbx_write, mbx_delimit_begin)
(mbx_delimit_end): Use bool for boolean.
(main): Simplify #if usage a bit.
(main): Don't assume EOF == -1. Prefer 'return' to 'exit'. Don't
possibly unlink lockname twice, as that's a race condition. Set
SIGCHLD to SIG_DFL to work around SysV misfeature. Check for fork
failure. Use waitpid, not wait, to avoid a race condition in the
unlikely case where we start up with a child.
(NOTOK, OK): Remove, in favor of plain boolean.
(popmail, pop_retr): Don't get confused about errno, e.g., ferror
need not set errno.
(popmail): Use fclose (mbf), not close (fileno (mbf)), to also
detect any stream-related errors (e.g., memory exhaustion).
(pop_retr): Report pop errors separately, since caller now does
errno reporting.
(mbx_write, mbx_delimit_begin, mbx_delimit_end): Check < 0, not ==
EOF, as it's a bit faster and (in theory) pickier.
Fixes: debbugs:17720
* net/eudcb-ldap.el (eudc-ldap-cleanup-record-simple): Mark as
obsolete.
(eudc-ldap-cleanup-record-filtering-addresses): Add docstring.
Don't clean up postal addresses if ldap-ignore-attribute-codings
is set. Combine mail addresses into one field. (Bug#17720)
(eudc-ldap-simple-query-internal): Call
eudc-ldap-cleanup-record-filtering-addresses instead of
eudc-ldap-cleanup-record-simple.
(eudc-ldap-get-field-list): Likewise.
Eli Zaretskii [Thu, 5 Mar 2015 16:56:43 +0000 (18:56 +0200)]
Fix region extension when scroll bar is on the right
src/keyboard.c (make_lispy_position): When the click is on the
right-side vertical scroll bar, pass the rightmost X coordinate to
buffer_posn_from_coords, so that the returned text position
reflects the closest point to the click. Fixes region extension
when mouse moves outside the Emacs frame that has scroll bars on
the right.
Stefan Monnier [Thu, 5 Mar 2015 01:04:57 +0000 (20:04 -0500)]
Replace *-function vars with generic functions in cl-generic.
* lisp/emacs-lisp/cl-generic.el (cl--generic-generalizer): New struct.
(cl-generic-tagcode-function, cl-generic-tag-types-function): Remove.
(cl--generic-t-generalizer): New const.
(cl--generic-make-method): Rename from `cl--generic-method-make'.
(cl--generic-make): Change calling convention.
(cl--generic): Add `options' field.
(cl-generic-function-options): New function.
(cl-defgeneric): Rewrite handling of options. Add support for :method
options and allow the use of a default body.
(cl-generic-define): Save options in the corresponding new field.
(cl-defmethod): Fix ordering of qualifiers.
(cl-generic-define-method): Use cl-generic-generalizers.
(cl--generic-get-dispatcher): Change calling convention, and change
calling convention of the returned function as well so as to take the
list of methods separately from the generic function object, so that it
can receive the original generic function object.
(cl--generic-make-next-function): New function, extracted from
cl--generic-make-function.
(cl--generic-make-function): Use it.
(cl-generic-method-combination-function): Remove.
(cl--generic-cyclic-definition): New error.
(cl-generic-call-method): Take a generic function object rather than
its name.
(cl-method-qualifiers): New alias.
(cl--generic-build-combined-method): Use cl-generic-combine-methods,
don't segregate by qualifiers here any more.
(cl--generic-standard-method-combination): Segregate by qualifiers
here instead. Add support for the `:extra' qualifier.
(cl--generic-cache-miss): Move earlier, adjust to new calling convention.
(cl-generic-generalizers, cl-generic-combine-methods):
New generic functions.
(cl-no-next-method, cl-no-applicable-method, cl-no-primary-method):
Use the new "default method in defgeneric" functionality, change
calling convention to receive a generic function object.
(cl--generic-head-used): New var.
(cl--generic-head-generalizer, cl--generic-eql-generalizer)
(cl--generic-struct-generalizer, cl--generic-typeof-generalizer):
New consts.
* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
(eieio--generic-subclass-generalizer): New consts.
(cl-generic-generalizers): New methods.
* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-generalizer)
(eieio--generic-static-object-generalizer): New consts.
(cl-generic-generalizers) <(head eieio--static)>: New method.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
Unfold closures like lambdas.
* net/eww.el (eww-search-prefix, eww-open-file, eww-search-words)
(eww-same-page-p,eww-set-character-encoding): Fix docstring.
(eww): Do not end error messages with a period.
Michael Albinus [Wed, 4 Mar 2015 10:46:06 +0000 (11:46 +0100)]
Sync with Tramp upstream
* automated/tramp-tests.el (top): Declare `tramp-get-remote-stat'
and `tramp-get-remote-perl'.
(tramp-test06-directory-file-name): Fix docstring and last test.
(tramp-test08-file-local-copy): Extend test.
(tramp-test13-make-directory): Test also PARENTS arg.
(tramp-test17-insert-directory): Do not expect any order in
directory listing.
(tramp--test-adb-p): New defun.
(tramp--test-check-files): Fix doxstring. Extend tests.
(tramp--test-special-characters): New defun. Use body from
`tramp-test30-special-characters'. Adapt check for tramp-adb.el.
(tramp-test30-special-characters): Use it.
(tramp--test-utf8): New defun. Use body from
`tramp-test31-utf8'. Add test string.
(tramp-test31-utf8): Use it.
(tramp-test30-special-characters-with-stat)
(tramp-test30-special-characters-with-perl)
(tramp-test30-special-characters-with-ls):
(tramp-test31-utf8-with-stat, tramp-test31-utf8-with-perl)
(tramp-test31-utf8-with-ls): New tests.
Zhongwei Yao [Wed, 4 Mar 2015 10:13:19 +0000 (11:13 +0100)]
Support port numbers in tramp-adb
* net/tramp-adb.el (tramp-adb-connect-if-not-connected):
New user option.
(tramp-adb-ls-toolbox-regexp): Fix regexp in order to support file
names starting with a space.
(tramp-methods): Add `tramp-default-port' for "adb".
(tramp-adb-parse-device-names): Add traces. Return device names
with port, if present.
(tramp-adb-handle-directory-files-and-attributes): Quote all
remote file names.
(tramp-adb-get-device): New defun.
(tramp-adb-execute-adb-command, tramp-adb-maybe-open-connection):
Use it.
(tramp-adb-maybe-open-connection): Set `tramp-current-*'
variables. Remove checks for listed devices.
Michael Albinus [Wed, 4 Mar 2015 10:02:36 +0000 (11:02 +0100)]
Sync with Tramp upstream.
* net/tramp-cache.el (tramp-dump-connection-properties):
Use `with-temp-file'.
* net/tramp-sh.el (tramp-perl-file-attributes)
(tramp-perl-directory-files-and-attributes): Escape apostrophs in
file names.
(tramp-do-file-attributes-with-stat): Quote file name.
(tramp-sh-handle-directory-files-and-attributes): Fall back to
`tramp-handle-directory-files-and-attributes' in case of problems.
(tramp-do-directory-files-and-attributes-with-stat)
(tramp-sh-handle-file-name-all-completions)
(tramp-sh-handle-delete-directory)
(tramp-sh-handle-expand-file-name, tramp-sh-handle-process-file):
Normalize use of "cd".
(tramp-do-directory-files-and-attributes-with-stat): Use the
`quoting-style' arg of `ls' if possible. Make it also working for
file names with apostrophs.
(tramp-sh-handle-file-name-all-completions): Use arguments of `ls'
in proper order.
(tramp-do-copy-or-rename-file-via-buffer)
(tramp-sh-handle-file-local-copy): Use `with-temp-file'.
(tramp-get-remote-locale): Accept also \r in output.
(tramp-get-ls-command-with-quoting-style): New defun.
(tramp-get-inline-coding): Set `default-directory' to a local
directory. Sporadically, `call-process-region' does not handle a
remote default directory properly.
* net/tramp.el (tramp): Add :link property.
(tramp-login-prompt-regexp): Allow also "user", as required by
Fritz!Box telnet.
(tramp-autoload-file-name-handler): Use "/".
(tramp-handle-unhandled-file-name-directory): Return nil when
required by the spec.