* lisp/emacs-lisp/package.el: Fix bug#16733 (again).
(url-http-parse-response, url-http-end-of-headers, url-recreate-url)
(url-http-target-url): Remove unused declarations.
(package-handle-response): Remove.
(package--with-work-buffer): Use url-insert-file-contents and simplify.
(package--download-one-archive): Use current-buffer instead of
dynamic binding of `buffer'.
(describe-package-1): Do not decode readme-string.
* lisp/url/url-handlers.el (url-http-parse-response): Add autoload.
(url-insert-file-contents): Signal file-error in case of HTTP error.
* net/tramp-sh.el (tramp-sh-handle-vc-registered): Revert change
from 2014-03-07, it decreases performance unnecessarily. Let-bind
`remote-file-name-inhibit-cache' to nil in the second pass.
(tramp-find-executable): Do not call "which" on SunOS.
(tramp-send-command-and-check): Fix docstring.
Barry O'Reilly [Tue, 25 Mar 2014 02:47:39 +0000 (22:47 -0400)]
Undo in region after markers in undo history relocated
* simple.el (primitive-undo): Only process marker adjustments
validated against their corresponding (TEXT . POS). Issue warning
for lone marker adjustments in undo history. (Bug#16818)
(undo-make-selective-list): Add marker adjustments to selective
undo list based on whether their corresponding (TEXT . POS) is in
the region. Remove variable adjusted-markers, which was unused
and only non nil during undo-make-selective-list.
(undo-elt-in-region): Return nil when passed a marker adjustment
and explain in function doc.
Have (MARKER . ADJUSTMENT) undo records always be immediately
after their corresponding (TEXT . POS) record in undo list.
(Bug#16818)
* lisp.h (record-delete): New arg record_markers.
(record_marker_adjustment): No longer needed outside undo.c.
* insdel.c (adjust_markers_for_delete): Move calculation of marker
adjustments to undo.c's record_marker_adjustments. Note that
fileio.c's decide_coding_unwind is another caller to
adjust_markers_for_delete. Because it has undo list bound to t,
it does not rely on adjust_markers_for_delete to record marker
adjustments.
(del_range_2): Swap call to record_delete and
adjust_markers_for_delete so as undo marker adjustments are
recorded before current deletion's adjustments, as before.
(adjust_after_replace):
(replace_range): Pass value for new record_markers arg to
delete_record.
* undo.c (record_marker_adjustment): Renamed to
record_marker_adjustments and made static.
(record_delete): Check record_markers arg and call
record_marker_adjustments.
(record_change): Pass value for new record_markers arg to
delete_record.
(record_point): at_boundary calculation no longer needs to account
for marker adjustments.
* undo-tests.el (undo-test-marker-adjustment-nominal):
(undo-test-region-t-marker): New tests of marker adjustments.
(undo-test-marker-adjustment-moved):
(undo-test-region-mark-adjustment): New tests to demonstrate
bug#16818, which fail without the fix.
* markers.texi (Moving Marker Positions): The 2014-03-02 doc
change mentioning undo's inability to handle relocated markers no
longer applies. See bug#16818.
* text.texi (Undo): Expand documentation of (TEXT . POS) and
(MARKER . ADJUSTMENT) undo elements.
Dmitry Gutov [Mon, 24 Mar 2014 22:38:06 +0000 (00:38 +0200)]
Fix bug#16762
* lisp/emacs-lisp/package.el (package--add-to-archive-contents):
Include already installed and built-in packages in
`package-archive-contents'.
(package-install): Don't include already installed packages in the
options on interactive invocation.
Dmitry Gutov [Mon, 24 Mar 2014 08:53:56 +0000 (10:53 +0200)]
Match special globals in Ruby better
* lisp/progmodes/ruby-mode.el (ruby-expression-expansion-re):
Match special global variables without curlies, too.
(ruby-font-lock-keywords): Simplify the matcher for special global
variables. Don't require a non-word character after the variable.
Stefan Monnier [Sun, 23 Mar 2014 22:30:47 +0000 (18:30 -0400)]
* lisp/simple.el (redisplay-highlight-region-function): Increase priority of
overlay to make sure boundaries are visible.
* src/buffer.c (struct sortvec): Add field `spriority'.
(compare_overlays): Use it.
(sort_overlays): Set it.
Eli Zaretskii [Sun, 23 Mar 2014 15:57:25 +0000 (17:57 +0200)]
Fix bug #17047 with cursor motion when invisible text starts a line.
src/xdisp.c (redisplay_window): If all previous attempts to find the
cursor row failed, try a few alternatives before falling back to
the top-most row of the window. Use row_containing_pos.
lisp/w32-common-fns.el (x-selection-owner-p): Get documentation from DOC.
Add empty docstring for the benefit of doc.c; change parameter profile
to match the X function.
Stefan Monnier [Fri, 21 Mar 2014 21:47:52 +0000 (17:47 -0400)]
* doc/lispref/functions.texi (Advising Functions): Explain a bit more how
arguments work.
(Advice combinators): New node.
(Core Advising Primitives): Use it. Expand description of "depth".
(Advising Named Functions): Document limitation of advices on macros.
Martin Rudalics [Fri, 21 Mar 2014 09:23:22 +0000 (10:23 +0100)]
Truly maximize w32 frames with odd fonts and some texi fixes.
* w32fns.c (w32_wnd_proc): For WM_WINDOWPOSCHANGING don't
constrain frame size in SW_SHOWMAXIMIZED case so we can truly
maximize a frame for odd default fonts.
* frames.texi (Size and Position): In `frame-resize-pixelwise'
description drop remark about frame maximization.
* windows.texi (Display Action Functions): Add description for
`display-buffer-no-window' and explain use of `allow-no-window'
alist entries.
Dmitry Gutov [Fri, 21 Mar 2014 06:06:52 +0000 (08:06 +0200)]
Fix bug#16826
* lisp/emacs-lisp/package.el (package-compute-transaction):
Use `version-list-<=' to compare the requirement version against
the package version already to be installed. Update the error
message.
Stefan Monnier [Thu, 20 Mar 2014 17:14:45 +0000 (13:14 -0400)]
* lisp/electric.el (electric-newline-and-maybe-indent): New command.
Bind it globally to C-j.
(electric-indent-mode): Don't mess with the global map any more.
Don't drop the post-self-insert-hook is some buffer is still using it.
* lisp/bindings.el (global-map): Remove C-j binding.
Stefan Monnier [Thu, 20 Mar 2014 16:00:17 +0000 (12:00 -0400)]
* lisp/emacs-lisp/nadvice.el (advice--make-docstring): Try harder to find
the docstring of functions advised before dumping.
* src/doc.c (store_function_docstring): Warn when we don't know where to
put a docstring.
(Fsubstitute_command_keys): Don't advertise the fact that
text-properties are dropped, since we think it's a bug that we'll fix
in 24.5.
Stefan Monnier [Thu, 20 Mar 2014 14:09:37 +0000 (10:09 -0400)]
* src/frame.h (SET_FRAME_VISIBLE): Keep frame_garbaged up to date.
* src/xterm.c (handle_one_xevent) <MapNotify>: Don't garbage the frame.
* src/frame.c (frame_garbaged): Make "docstring" more precise.
Paul Eggert [Wed, 19 Mar 2014 21:09:08 +0000 (14:09 -0700)]
Fix porting inconsistency about rounding to even.
* doc/lispref/numbers.texi (Numeric Conversions, Rounding Operations):
Document that 'round' and 'fround' round to even.
* src/floatfns.c (emacs_rint) [!HAVE_RINT]: Round to even.
This way, the unusual !HAVE_RINT case acts like the usual
HAVE_RINT case, and we can fix the documentation accordingly.
Recommend not modifying :set's value arg in defcustom (bug#16755).
* doc/lispref/customize.texi (Variable Definitions):
* lisp/custom.el (defcustom): Recommend avoiding
destructive modification of the value argument of :set.
Stefan Monnier [Tue, 18 Mar 2014 21:14:36 +0000 (17:14 -0400)]
* doc/lispref/modes.texi (Auto-Indentation): Mention electric-indent variables.
* doc/misc/cc-mode.texi (Indentation Commands): Remove C-j, since it's not
defined by CC-mode but globally.
(FAQ): Tweak text about RET and auto-indentation.
* doc/misc/vip.texi (Other Vi Commands): Adjust doc of C-j.
David Engster [Tue, 18 Mar 2014 21:12:42 +0000 (22:12 +0100)]
Document new EDE features.
* ede.texi (ede-cpp-root): Document the :compile-command slot.
(ede-linux): Document new variables
`project-linux-build-directory-default' and
`project-linux-architecture-default'.