Michael Albinus [Sat, 21 Feb 2015 12:11:55 +0000 (13:11 +0100)]
Support file notifications for dired auto-revert
* autorevert.el (auto-revert-notify-add-watch)
(auto-revert-notify-handler, auto-revert-buffers): Handle also
buffers without an associated file, like dired buffers.
* lisp/progmodes/verilog-mode.el (verilog-mode-version): Update.
(vector-skip-list): Remove.
(verilog-auto-inst-port, verilog-auto-inst-port-list)
(verilog-auto-inst, verilog-auto-inst-param):
Use arguments rather than vector-skip.
(verilog-auto-inst-port): Fix AUTOINST interfaces to not show modport
if signal attachment is itself a modport. Reported by Matthew Lovell.
Jan Djärv [Fri, 20 Feb 2015 07:46:38 +0000 (08:46 +0100)]
Avoid endless loop when handling fatal signal.
* src/emacs.c (terminate_due_to_signal): Move totally_unblock_input after
setting fatal_error_in_progress, so gobble_input and *read_socket are
not read if there are pending_signals.
Paul Eggert [Fri, 20 Feb 2015 03:20:35 +0000 (19:20 -0800)]
Simplify binary I/O configuration
* lib-src/etags.c: Include <sysstdio.h> rather than <stdio.h>.
(process_file_name, analyze_regex): Use FOPEN_BINARY rather than
hard-coded "b".
* src/lread.c (Fload): Prefer FOPEN_TEXT and FOPEN_BINARY to
#ifdef DOS_NT.
* src/sysstdio.h: Add copyright notice. Include <fcntl.h>.
(FOPEN_BINARY, FOPEN_TEXT): New macros.
* src/xfaces.c (Fx_load_color_file): Use FOPEN_TEXT, since POSIX
doesn't guarantee that "t" will work.
Dima Kogan [Thu, 19 Feb 2015 20:36:03 +0000 (21:36 +0100)]
auto-revert-mode can now revert immediately in response to a change event
Fixes: debbugs:18958
* autorevert.el (auto-revert-buffers-counter)
(auto-revert-buffers-counter-lockedout): New variables.
(auto-revert-buffers): Increase `auto-revert-buffers-counter'.
(auto-revert-notify-handler): Apply `auto-revert-handler' if not
suppressed by lockout.
* lisp/emacs-lisp/eieio-base.el (make-instance): Add a method here rather
than on eieio-constructor.
* lisp/emacs-lisp/eieio-core.el (eieio--class-print-name): New function.
(eieio-class-name): Make it do what the docstring claims.
(eieio-defclass-internal): Simplify since `prots' isn't used any more.
(eieio--slot-name-index): Simplify accordingly.
(eieio-barf-if-slot-unbound): Pass the class object rather than its
name to `slot-unbound'.
* lisp/emacs-lisp/eieio.el (defclass): Use make-instance rather than
eieio-constructor.
(set-slot-value): Mark as obsolete.
(eieio-object-class-name): Improve call to eieio-class-name.
(eieio-slot-descriptor-name, eieio-class-slots): New functions.
(object-slots): Use it. Declare obsolete.
(eieio-constructor): Merge it with `make-instance'.
(initialize-instance): Use `dolist'.
(eieio-override-prin1, eieio-edebug-prin1-to-string):
Use eieio--class-print-name.
* test/automated/eieio-test-methodinvoke.el (make-instance): Add methods
here rather than on eieio-constructor.
Stefan Monnier [Mon, 16 Feb 2015 06:37:57 +0000 (01:37 -0500)]
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Keep type=nil by default.
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Add sanity checks
about relationship between `type', `named', and `slots'.
* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tagcode): Adjust to new
value of `cl-struct-type' property.
Don't mark nnimap articles as read on a server hangup
* lisp/gnus/nnimap.el (nnimap-retrieve-headers): If the server closes connection
during header retrieval, error out instead of interpreting the data in
the buffer as the only messages there. This way, we don't mark
articles as read on a server hangup (bug#19035).
* lisp/gnus/mm-decode.el (mm-head-p): New function.
(mm-display-part): Go to a blank line when inserting parts internally.
Fix inserting parts with `E' in Gnus
* lisp/gnus/mm-decode.el (mm-head-p): New function.
(mm-display-part): Go to a blank line when inserting parts internally.
Stefan Monnier [Sat, 14 Feb 2015 05:46:29 +0000 (00:46 -0500)]
* lisp/emacs-lisp/cl*.el: Use define-inline and move some code
* lisp/emacs-lisp/cl-lib.el: Move autoloaded code to cl-preload.
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Register as children
of the parent.
(cl--assertion-failed): New function.
(cl-assertion-failed): Move in from cl-lib.el.
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't generate code to register
as children of its parents.
(cl--make-type-test, cl--compiler-macro-typep): Remove functions.
(cl-typep): Reimplement using define-inline.
(cl-assert): Use cl--assertion-failed.
(cl-struct-slot-value): Use define-inline.
Fixes: debbugs:19844
(flyspell-generic-check-word-p): Mark as obsolete.
* lisp/erc/erc-spelling.el (erc-spelling-init):
Use flyspell-generic-check-word-predicate.
Paul Eggert [Fri, 13 Feb 2015 02:20:12 +0000 (18:20 -0800)]
Better support for future plugins
See the thread containing:
http://lists.gnu.org/archive/html/emacs-devel/2015-02/msg00720.html
* lib-src/make-docfile.c (write_globals): Generate code that #defines
Qxxx macros other than Qnil only if DEFINE_NONNIL_Q_SYMBOL_MACROS.
Qnil is safe to define even in plugins, since it must be zero for
other reasons.
* src/lisp.h (DEFINE_LISP_SYMBOL): New macro, replacing and simplifying
DEFINE_LISP_SYMBOL_BEGIN / DEFINE_LISP_SYMBOL_END. All uses changed.
(DEFINE_NONNIL_Q_SYMBOL_MACROS): New macro, defaulting to true.
Katsumi Yamaoka [Thu, 12 Feb 2015 09:39:24 +0000 (09:39 +0000)]
lisp/gnus/gnus-art.el (gnus-article-browse-html-save-cid-content, gnus-article-browse-html-parts): Make cid file names relative if and only if html doesn't specify <base> directory
python.el: Allow killing shell buffer if process is dead.
Fixes: debbugs:19823
* lisp/progmodes/python.el (python-shell-font-lock-kill-buffer): Don't
require a running process.
(python-shell-font-lock-post-command-hook): Fontify only if the
shell process is running.
Nicolas Petton [Wed, 11 Feb 2015 08:21:03 +0000 (09:21 +0100)]
Add a backward-compatible version of seq-reverse
* lisp/emacs-lisp/seq.el (seq-reverse): Add a backward-compatible
version of seq-reverse that works on sequences in Emacs 24. Bump
version to 1.2.
* test/automated/seq-tests.el (test-seq-reverse, test-seq-group-by):
Add a test for seq-reverse and update test for seq-group-by to test
vectors and strings, not only lists.
Nicolas Petton [Mon, 9 Feb 2015 12:14:52 +0000 (13:14 +0100)]
Improve seq-group-by to return sequence elements in correct order
* lisp/emacs-lisp/seq.el (seq-group-by): Improves seq-group-by to
return sequence elements in correct order
* tests/automated/seq-tests.el: Update test for seq-group-by
* doc/lispref/sequences.texi (Sequence Functions): Update documentation
examples for seq-group-by
Martin Rudalics [Wed, 11 Feb 2015 08:07:24 +0000 (09:07 +0100)]
Improve toggling fullscreen state of frames.
* frame.el (toggle-frame-maximized, toggle-frame-fullscreen):
Rename frame parameter `maximized' to `fullscreen-restore'.
Restore fullwidth/-height after fullboth state. Update
doc-strings.
* w32term.c (w32_read_socket): In SIZE_MAXIMIZED and
SIZE_RESTORED cases correctly handle `maximized' value for the
`fullscreen' parameter. Don't use the 'maximized' parameter any
more.
(w32fullscreen_hook): Include menu bar height when calculating
new text height in FULLSCREEN_BOTH case.
* xterm.c (do_ewmh_fullscreen): Handle transition from
FULLSCREEN_BOTH to FULLSCREEN_MAXIMIZED when
x_frame_normalize_before_maximize is set.
* frames.texi (Size Parameters): Update description of
fullscreen frame parameter.
(shr-table-widths): Off-by-one error in width computation.
(shr-expand-newlines): Remove dead code.
(shr-insert-table): Extend background colors to the end of the column.
* lisp/gnus/mm-decode.el (mm-shr): Only pass the fill column when not using
fonts, because limiting the width to what's appropriate for followups
doesn't really help when not using proportional fonts.
* lisp/net/shr.el (shr-use-fonts): New variable.
(shr-fill-text): Rename from "fold".
(shr-pixel-column, shr-pixel-region, shr-string-pixel-width): New
functions.
(shr-insert): Just insert, don't fill the text. Filling is now
done afterwards per display unit.
(shr-fill-lines, shr-fill-line): New functions to fill text on a
per-unit base.
(shr-find-fill-point): Take a "beginning" parameter.
(shr-indent): Indent using the :width display parameter when using
fonts.
(shr-parse-style): Ignore "inherit" values, since we already do that.
(shr-tag-img): Remove the insertion states.
(shr-tag-blockquote): New-style filling.
(shr-tag-dd): Ditto.
(shr-tag-li): Ditto.
(shr-mark-fill): New function to mark lines that need filling.
(shr-tag-h1): Use a larger font.
(shr-tag-table-1): Get the natural and suggested widths in one
rendering.
(shr-tag-table): Create the "fixed" version of the table only once
so that we can cache data in the table.
(shr-insert-table): Get colspan calculations right by having
zero-width columns after colspan ones.
(shr-expand-alignments): New function to make :align-to specs work
right when rendered in one buffer and displayed in another one.
(shr-insert-table-ruler): Use :align-to to get the widths right.
(shr-make-table): Cache more.
(shr-make-table-1): Use the new <td> data layout.
(shr-pixel-buffer-width): New function.
(shr-render-td): Add a caching layer.
(shr-dom-max-natural-width): New function.
python.el: Improved shell font lock respecting markers.
Fixes: debbugs:19650
* lisp/progmodes/python.el
(python-shell-font-lock-get-or-create-buffer): Use special buffer name.
(python-shell-font-lock-with-font-lock-buffer): Enable font lock.
(python-shell-font-lock-post-command-hook): Fontify by copying text
properties from fontified buffer to shell, keeping markers unchanged.
(python-shell-font-lock-turn-off): Fix typo.
(python-util-text-properties-replace-name): Delete function.
Paul Eggert [Mon, 9 Feb 2015 19:25:35 +0000 (11:25 -0800)]
Check for some overflows in vertical-motion
* indent.c (window_column_x): New function.
(Fvertical_motion): Use it to protect against integer overflow
when computing column. Prefer extract_float to doing things by hand.
Avoid unnecessary casts.
Eli Zaretskii [Mon, 9 Feb 2015 16:24:46 +0000 (18:24 +0200)]
Speed up vertical-motion when screen coordinates are known
src/indent.c (Fvertical_motion): Accept an additional argument
CUR-COL and use it as the starting screen coordinate.
src/window.c (window_scroll_line_based, Fmove_to_window_line): All
callers of vertical-motion changed.
doc/lispref/positions.texi (Screen Lines): Update the documentation of
vertical-motion to document the new additional argument.