Commit graph

64112 commits

Author SHA1 Message Date
Michael Albinus
444975fa54 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.
2015-03-24 20:05:00 +01:00
Daiki Ueno
71fdbd770b epg: Fix key generation interface
* epg.el (epg-start-generate-key): Fix typo in "gpg --gen-key"
invocation; make the PARAMETERS documentation clearer.
2015-03-24 16:32:08 +09:00
Stefan Monnier
d7d72624b2 Add cl-struct specific optimizations to pcase.
* lisp/emacs-lisp/cl-macs.el (cl--struct-all-parents)
(cl--pcase-mutually-exclusive-p): New functions.
(pcase--mutually-exclusive-p): Advise to optimize cl-struct patterns.

* lisp/emacs-lisp/pcase.el (pcase--split-pred): Handle quoted string.
2015-03-23 23:40:06 -04:00
Stefan Monnier
ae277259b1 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'.
2015-03-23 18:24:30 -04:00
Paul Eggert
2393085c9a 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

Conflicts:
	ChangeLog
	doc/lispref/ChangeLog
	etc/PROBLEMS
	lisp/ChangeLog
	lisp/gnus/ChangeLog
	lisp/simple.el
2015-03-23 10:30:33 -07:00
Paul Eggert
a660037698 Merge from origin/emacs-24
bb7b23c In `debug' don't try using window on inaccessible frame (Bug#17170).

Conflicts:
	lisp/ChangeLog
2015-03-23 10:17:21 -07:00
Dmitry Gutov
a50c95dbd2 Get rid of json-decode-char0 as well
Fixes: debbugs:20154

* lisp/json.el (json-decode-char0): Delete this alias as well.
(json-read-escaped-char): Don't call it.
2015-03-23 18:00:39 +02:00
Daniel Colascione
bad7308e0c Fix previous commit (again) 2015-03-23 01:54:42 -07:00
Daniel Colascione
b8d7d7e8e6 Fix previous commit 2015-03-23 01:42:56 -07:00
Daniel Colascione
d235b1d261 Try to avoid fontifying macros in funcall position
* lisp/emacs-lisp/lisp-mode.el
(lisp--el-non-funcall-position-p): New function.
(lisp--el-match-keyword): Use it.
2015-03-23 01:38:20 -07:00
Ben Bacarisse
90b46f5b54 lisp/gnus/nnmh.el (nnmh-request-expire-articles): Work for the case nnmail-expiry-target is an nnmh group (bug#20170) 2015-03-23 08:02:01 +00:00
Daiki Ueno
47e0e31932 Generalize start-process with keyword args
* src/process.c (Fmake_process): New function.
(create_process, create_pty): Check p->pty_flag instead of
Vprocess_connection_type.
(syms_of_process): Register QCcommand, QCconnection_type, Qpty,
Qpipe, and Smake_process.  Unregister Sstart_process.

* lisp/subr.el (start-process): New function, ported from the C
implementation.

* doc/lispref/processes.texi (Asynchronous Processes): Mention
`make-process'.

* etc/NEWS: Mention `make-process'.
2015-03-23 16:27:29 +09:00
Daniel Colascione
165bea7800 Automatically adjust process window sizes
* lisp/window.el (window-adjust-process-window-size-function): New
customizable variable.
(window-adjust-process-window-size)
(window-adjust-process-window-size-smallest)
(window-adjust-process-window-size-largest)
(window--process-window-list, window--adjust-process-windows):
New functions.
(window-configuration-change-hook): Add
`window--adjust-process-windows'.
* lisp/term.el (term-mode): Observe result of
`window-adjust-process-window-size-function'.
(term-check-size): Delete.
2015-03-22 21:09:32 -07:00
Jackson Ray Hamilton
f4c23f4583 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.
2015-03-22 20:47:43 -07:00
Glenn Morris
e7f92aa3d3 authors.el small additions
* lisp/emacs-lisp/authors.el (authors-aliases)
(authors-obsolete-files-regexps): Additions.
2015-03-22 17:33:49 -07:00
Dmitry Gutov
a3b6c249e9 Rewrite json-encode-string
Fixes: debbugs:20154

* lisp/json.el (json-decode-char0): Delete this alias.
(json-encode-string): Rewrite to improve performance.
(json-encode-char): Fold into `json-encode-string'.
2015-03-23 00:50:58 +02:00
Artur Malabarba
2a954e8aa6 * menu-bar.el (menu-bar-update-buffers): Properly count buffers. 2015-03-22 19:29:57 +00:00
Jan D
c3c4b758c6 Fixes: debbugs:18939
* simple.el (deactivate-mark): Only modify PRIMARY if we own PRIMARY.
2015-03-22 19:31:46 +01:00
Martin Rudalics
bb7b23c5cb In `debug' don't try using window on inaccessible frame (Bug#17170).
* emacs-lisp/debug.el (debug): Don't try using "previous"
window when its not live or on an invisible frame (Bug#17170).
2015-03-22 12:40:21 +01:00
Eric Abrahamsen
6e1fac9bc7 lisp/gnus/{registry.el,gnus-registry.el}: Use slot names in references to object slot values 2015-03-21 23:59:30 +00:00
Titus von der Malsburg
4a50af936e Add new functions for computing default font dimensions
lisp/window.el (window-font-width, window-font-height)
 (window-max-chars-per-line): New functions.
 lisp/simple.el (default-font-height): Doc fix.
 (default-font-width): New function.

 etc/NEWS: Mention `default-font-width', `window-font-height',
 `window-font-width', and `window-max-chars-per-line'.
2015-03-21 12:31:29 +02:00
Eli Zaretskii
e72edc05c3 Fix lisp/ChangeLog entry from last commit. 2015-03-21 12:04:39 +02:00
Mario Lang
17ad6f839e Fix problems caused by calling 'recenter' in auto-revert (Bug#20122)
lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Only call
 `recenter' if `current-buffer' is equal to `window-buffer'.

(cherry picked from commit 4a81602043)
2015-03-21 12:01:27 +02:00
Tassilo Horn
fa734d07ab Handle setf methods in elisp font-locking.
* emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-1): Also
recognize (cl-)defmethod with (setf method) name.
2015-03-21 08:52:34 +01:00
Tassilo Horn
73b8237c19 Fix CL function name font-lock bug.
* emacs-lisp/lisp-mode.el (lisp-cl-font-lock-keywords-1): Fix
false positive in function name font-locking.
2015-03-20 23:35:22 +01:00
Tassilo Horn
c9998fcbf4 Fix elisp function name font-lock bug.
* emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-1): Fix
false positive in function name font-locking.
2015-03-20 23:09:06 +01:00
Stefan Monnier
4cd31cf019 (cl-defsubst): Ignore false-positive occurrences of args via &cl-defs
Fixes: debbugs:20149

* lisp/emacs-lisp/cl-macs.el (cl-defsubst): Ignore false-positive
occurrences of args via &cl-defs.
2015-03-20 16:29:21 -04:00
Alan Mackenzie
932d0fdb4f Fix debbugs#20146
* font-lock.el (font-lock-extend-jit-lock-region-after-change):
Return the calculated values, as per spec.
2015-03-20 15:39:37 +00:00
Eric Abrahamsen
1fcc552ac2 lisp/gnus/registry.el (registry-prune): Allow registry to reach full size before pruning 2015-03-20 10:49:41 +00:00
Eric Abrahamsen
b8ea3aa9db lisp/gnus/registry.el (registry-collect-prune-candidates): Fix call to cl-subseq 2015-03-20 10:49:06 +00:00
Glenn Morris
395a76ad1c # ChangeLog fixes
Using eg add-change-log-entry-other-window, C-x 4 a, would avoid these issues
2015-03-19 23:02:28 -07:00
Dmitry Gutov
8142fc97af 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.
2015-03-20 07:03:54 +02:00
Dmitry Gutov
1c4900d953 Backport: ruby-mode: Detect regexps after `!'
Fixes: debbugs:19285

* lisp/progmodes/ruby-mode.el (ruby-syntax-before-regexp-re): Detect
regexps after `!'.

(cherry picked from commit 8854b9cf52)
2015-03-20 06:05:02 +02:00
Dmitry Gutov
f74843a7f1 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.

(cherry picked from commit e991af9228)
2015-03-20 06:04:54 +02:00
Nobuyoshi Nakada
a5d1f94fec Backport: ruby-mode: Expect regexp after { or | too
Fixes: debbugs:20026

* progmodes/ruby-mode.el (ruby-syntax-before-regexp-re): Expect
beginning of regexp also after open brace or vertical bar.

(cherry picked from commit dad0fc589c)
2015-03-20 06:04:36 +02:00
Vibhav Pant
3ffcf0e3de Call delete-backward-space interactively.
* lisp/progmodes/cperl-mode.el (cperl-electric-backspace):
 Call delete-backward-space interactively instead of delete-char.

* lisp/Changelog: Fix previous changelog.
2015-03-20 01:43:37 +05:30
Stefan Monnier
8aa13d07fe * lisp/emacs-lisp/pcase.el (pcase-lambda): Rewrite. 2015-03-19 13:46:36 -04:00
Stefan Monnier
29f7f98b7c Fixes: debbugs:20141
* lisp/emacs-lisp/eieio.el (object-slots): Return slot names as before.
2015-03-19 10:35:52 -04:00
Stefan Monnier
50c117fe86 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'.
2015-03-18 23:02:26 -04:00
Vibhav Pant
f469024eea Use delete-char instead of delete-backward-char.
* lisp/leim/quail/hangul.el
* lisp/progmodes/cperl-mode.el: Use delete-char instead of
delete-backward-char, fixes compilation warnings.
2015-03-19 06:45:58 +05:30
Michael Albinus
611a4791a4 Mark apostrophs with ?/ instead of \037 in Tramp
Fixes: debbugs:20117

* net/tramp-sh.el (tramp-do-directory-files-and-attributes-with-stat):
Mark apostrophs with ?/ instead of \037.
2015-03-18 20:32:16 +01:00
Stefan Monnier
8dfff871bd * cl-generic.el (cl-generic-generalizers): Clean up after braindamage 2015-03-18 10:49:55 -04:00
Stefan Monnier
872481d9e2 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.

* lwlib/xlwmenu.c (pop_up_menu): Remove debugging code.
2015-03-18 10:31:07 -04:00
Dima Kogan
fd93edbb1c Have gud-display-line not display source buffer in gud window.
* lisp/progmodes/gud.el (gud-display-line): Make display-buffer
not reuse selected window.  (Bug#17675, Bug#19901, Bug#20034)
2015-03-18 08:15:54 +01:00
Tassilo Horn
9fdc166ee0 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.
2015-03-18 07:44:01 +01:00
Paul Eggert
1a93b9145d * lisp/net/browse-url.el: Omit confusing documentation. 2015-03-17 20:55:34 -07:00
Paul Eggert
f9e354ebea Spelling and wording fixes 2015-03-17 17:11:14 -07:00
Simen Heggestøyl
7ec63a3afa 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.
2015-03-17 23:11:55 +01:00
Simen Heggestøyl
62fde9ee0f 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.
2015-03-17 22:58:13 +01:00
Simen Heggestøyl
64db0c26fa 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.
2015-03-17 22:50:10 +01:00