Commit 6d262353 authored by Glenn Morris's avatar Glenn Morris
Browse files

Merge from emacs-24; up to 2014-07-02T00:57:53Z!

parents 93b31b57 b62da77c
......@@ -92,6 +92,7 @@ files.")
("Joseph Arceneaux" "Joe Arceneaux")
("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ?
("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
("Jürgen Hötzel" "Juergen Hoetzel")
("K. Shane Hartman" "Shane Hartman")
("Kai Großjohann" "Kai Grossjohann")
("Karl Berry" "K. Berry")
2014-08-28 Eli Zaretskii <>
* display.texi (Bidirectional Display): Update the Emacs's class
of bidirectional conformance.
2014-08-27 Dmitry Antipov <>
* eval.texi (Eval): Mention possible recovery from stack overflow.
......@@ -6551,8 +6551,10 @@ positions do not increase monotonically with string or buffer
position. In performing this @dfn{bidirectional reordering}, Emacs
follows the Unicode Bidirectional Algorithm (a.k.a.@: @acronym{UBA}),
which is described in Annex #9 of the Unicode standard
(@url{}). Emacs provides a ``Full
Bidirectionality'' class implementation of the @acronym{UBA}.
(@url{}). Emacs currently provides
a ``Non-isolate Bidirectionality'' class implementation of the
@acronym{UBA}: it does not yet support the isolate directional
formatting characters introduced with Unicode Standard v6.3.0.
@defvar bidi-display-reordering
If the value of this buffer-local variable is non-@code{nil} (the
2014-08-28 Glenn Morris <>
* emacs.appdata.xml: New file; description from Emacs's homepage.
2014-08-25 Eli Zaretskii <>
* NEWS: Mention that string-collate-* functions are supported on
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2014 Free Software Foundation, Inc. -->
<id type="desktop">emacs.desktop</id>
<!-- It is GFDL-1.3+, but appdata-validate complains... -->
<project_license>GPL-3.0+ and GFDL-1.3</project_license>
<name>GNU Emacs</name>
<summary>An extensible text editor</summary>
GNU Emacs is an extensible, customizable text editor - and more.
At its core is an interpreter for Emacs Lisp, a dialect of the Lisp
programming language with extensions to support text editing.
<p>The features of GNU Emacs include:</p>
<li>Content-sensitive editing modes, including syntax coloring, for
a wide-range of file types</li>
<li>Complete built-in documentation, including a tutorial for new users</li>
<li>Full Unicode support for nearly all human languages and their scripts</li>
<li>Highly customizable, using Emacs Lisp code or a graphical interface</li>
<li>Includes a project planner, mail and news reader, debugger
interface, calendar, and more</li>
<screenshot type="default" width="632" height="354"></screenshot>
<url type="homepage"></url>
2014-08-28 Michael Albinus <>
* emacs-lisp/authors.el (authors-aliases): Addition.
* net/tramp-adb.el: Spell author name correctly.
2014-08-28 João Távora <>
* net/shr.el (shr-expand-url): Plain expand-file-name is not enough;
use url-expand-file-name. (Bug#18310)
2014-08-28 Glenn Morris <>
* emulation/cua-rect.el (cua--highlight-rectangle):
Avoid error at point-min. (Bug#18309)
2014-08-28 Stefan Monnier <>
* progmodes/python.el (python-shell-prompt-detect): Remove redundant
executable-find (bug#18244).
* simple.el (self-insert-uses-region-functions): Defvar.
2014-08-28 Glenn Morris <>
* subr.el (remq): Revert 2014-08-25 doc change (not always true).
......@@ -794,7 +794,7 @@ If command is repeated at same position, delete the rectangle."
(- l cl0 (if (and (= le pl) (/= le lb)) 1 0))
(if cua--virtual-edges-debug ?. ?\s))
'face (or (get-text-property (1- s) 'face) 'default)))
'face (or (get-text-property (max (1- s) (point-min)) 'face) 'default)))
(if (/= pl le)
(setq s (1- s))))
......@@ -589,6 +589,10 @@ size, and full-buffer size."
(url-type parsed)
(autoload 'url-expand-file-name "url-expand")
;; FIXME This needs some tests writing.
;; Does it even need to exist, given that url-expand-file-name does?
(defun shr-expand-url (url &optional base)
(setq base
(if base
......@@ -614,7 +618,7 @@ size, and full-buffer size."
(concat (nth 3 base) url))
;; Totally relative.
(concat (car base) (expand-file-name url (cadr base))))))
(url-expand-file-name url (concat (car base) (cadr base))))))
(defun shr-ensure-newline ()
(unless (zerop (current-column))
......@@ -2,7 +2,7 @@
;; Copyright (C) 2011-2014 Free Software Foundation, Inc.
;; Author: Juergen Hoetzel <>
;; Author: Jürgen Hötzel <>
;; Keywords: comm, processes
;; Package: tramp
......@@ -1905,7 +1905,7 @@ detection and just returns nil."
(let ((code-file (python-shell--save-temp-file code)))
;; Use `process-file' as it is remote-host friendly.
(executable-find python-shell-interpreter)
'(t nil)
......@@ -2061,11 +2061,14 @@ uniqueness for different types of configurations."
(or python-shell-virtualenv-path "")
(mapconcat #'identity python-shell-exec-path "")))))
(defun python-shell-parse-command ()
(defun python-shell-parse-command () ;FIXME: why name it "parse"?
"Calculate the string used to execute the inferior Python process."
;; FIXME: process-environment doesn't seem to be used anywhere within
;; this let.
(let ((process-environment (python-shell-calculate-process-environment))
(exec-path (python-shell-calculate-exec-path)))
(format "%s %s"
;; FIXME: Why executable-find?
(executable-find python-shell-interpreter)
......@@ -2101,11 +2104,10 @@ uniqueness for different types of configurations."
(defun python-shell-calculate-exec-path ()
"Calculate exec path given `python-shell-virtualenv-path'."
(let ((path (append python-shell-exec-path
exec-path nil)))
exec-path nil))) ;FIXME: Why nil?
(if (not python-shell-virtualenv-path)
(cons (format "%s/bin"
(directory-file-name python-shell-virtualenv-path))
(cons (expand-file-name "bin" python-shell-virtualenv-path)
(defvar python-shell--package-depth 10)
......@@ -374,6 +374,13 @@ Other major modes are defined by comparison with this one."
;; Making and deleting lines.
(defvar self-insert-uses-region-functions nil
"Special hook to tell if `self-insert-command' will use the region.
It must be called via `run-hook-with-args-until-success' with no arguments.
Any `post-self-insert-command' which consumes the region should
register a function on this hook so that things like `delete-selection-mode'
can refrain from consuming the region.")
(defvar hard-newline (propertize "\n" 'hard t 'rear-nonsticky '(hard))
"Propertized string representing a hard newline character.")
2014-08-28 Eli Zaretskii <>
* sedlibmk.inp (gl_LIBOBJS): Add execinfo.o. Reported by Juan
Manuel Guerrero <>.
* sed2v2.inp [DJGPP <= 2.03]: Add a prototype for snprintf, to
avoid compilation warning from newer GCC versions that have
snprintf as a built-in. Reported by Juan Manuel Guerrero
2014-08-09 Eli Zaretskii <>
* INSTALL: Fix last change.
......@@ -127,6 +127,8 @@ s/^#undef HAVE_STRTOULL *$/#define HAVE_STRTOULL 1/
#define HAVE_SNPRINTF 1\
#include <sys/types.h>\
extern int snprintf (char *__restrict, size_t, const char *__restrict, ...);\
s/^#undef PENDING_OUTPUT_N_BYTES *$/#define PENDING_OUTPUT_N_BYTES fp->_ptr - fp->_base/
......@@ -315,6 +315,7 @@ am__cd = cd
/^BYTESWAP_H *=/s/@[^@\n]*@/byteswap.h/
/^DIRENT_H *=/s/@[^@\n]*@//
/^ERRNO_H *=/s/@[^@\n]*@//
/^EXECINFO_H *=/s/@[^@\n]*@/execinfo.h/
/^STDBOOL_H *=/s/@[^@\n]*@//
/^STDALIGN_H *=/s/@[^@\n]*@/stdalign.h/
/^STDARG_H *=/s/@[^@\n]*@//
......@@ -333,7 +334,7 @@ am__cd = cd
/am__append_[1-9][0-9]* *=.*gettext\.h/s/@[^@\n]*@/\#/
/am__append_2 *=.*verify\.h/s/@[^@\n]*@//
/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o/
/^gl_LIBOBJS *=/s/@[^@\n]*@/getopt.o getopt1.o memrchr.o sig2str.o time_r.o getloadavg.o pthread_sigmask.o mkostemp.o fpending.o fdatasync.o execinfo.o/
/^am__append_[1-9][0-9]* *=/,/^[^ ]/{
s/ *inttypes\.h//
s| *sys/select\.h||
2014-08-28 Eli Zaretskii <>
* conf_post.h (_GL_EXECINFO_INLINE) [MSDOS]: Don't define.
* indent.c (Fvertical_motion): Fix vertical motion up through a
display property after a newline. (Bug#18276)
* xdisp.c (display_line): Don't assume that the call to
reseat_at_next_visible_line_start ends up at a character
immediately following the newline on the previous line. Avoids
setting the ends_at_zv_p flag on screen lines that are not at or
beyond ZV, which causes infloop in redisplay. For the details, see
* dispnew.c (buffer_posn_from_coords): Fix mirroring of X
coordinate for hscrolled R2L screen lines. (Bug#18277)
2014-08-28 Paul Eggert <>
* sysdep.c (LC_COLLATE, LC_COLLATE_MASK): Give individual defaults
......@@ -123,13 +123,6 @@ You lose; /* Emacs for DOS must be compiled with DJGPP */
so we could reuse it in readlinkat; see msdos.c. */
#define opendir sys_opendir
/* The "portable" definition of _GL_INLINE on config.h does not work
with DJGPP GCC 3.4.4: it causes unresolved externals in sysdep.c,
although lib/execinfo.h is included and the inline functions there
are visible. */
#if __GNUC__ < 4
# define _GL_EXECINFO_INLINE inline
/* End of gnulib-related stuff. */
#define emacs_raise(sig) msdos_fatal_signal (sig)
......@@ -5143,9 +5143,8 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
move_it_to (&it, -1, 0, *y, -1, MOVE_TO_X | MOVE_TO_Y);
/* TO_X is the pixel position that the iterator will compute for the
glyph at *X. We add it.first_visible_x because iterator
positions include the hscroll. */
to_x = x0 + it.first_visible_x;
glyph at *X. */
to_x = x0;
if (it.bidi_it.paragraph_dir == R2L)
/* For lines in an R2L paragraph, we need to mirror TO_X wrt the
text area. This is because the iterator, even in R2L
......@@ -5159,6 +5158,10 @@ buffer_posn_from_coords (struct window *w, int *x, int *y, struct display_pos *p
it should be mirrored into zero pixel position.) */
to_x = window_box_width (w, TEXT_AREA) - to_x - 1;
/* We need to add it.first_visible_x because iterator positions
include the hscroll. */
to_x += it.first_visible_x;
/* Now move horizontally in the row to the glyph under *X. Second
argument is ZV to prevent move_it_in_display_line from matching
based on buffer positions. */
......@@ -2004,6 +2004,8 @@ whether or not it is currently displayed in some window. */)
int first_x;
bool overshoot_handled = 0;
bool disp_string_at_start_p = 0;
ptrdiff_t nlines = XINT (lines);
int vpos_init = 0;
itdata = bidi_shelve_cache ();
......@@ -2093,18 +2095,31 @@ whether or not it is currently displayed in some window. */)
overshoot_handled = 1;
if (XINT (lines) <= 0)
else if (IT_CHARPOS (it) == PT - 1
&& FETCH_BYTE (PT - 1) == '\n'
&& nlines < 0)
it.vpos = 0;
/* The position we started from was covered by a display
property, so we moved to position before the string, and
backed up one line, because the character at PT - 1 is a
newline. So we need one less line to go up. */
/* But we still need to record that one line, in order to
return the correct value to the caller. */
vpos_init = -1;
if (nlines <= 0)
it.vpos = vpos_init;
/* Do this even if LINES is 0, so that we move back to the
beginning of the current line as we ought. */
if (XINT (lines) == 0 || IT_CHARPOS (it) > 0)
move_it_by_lines (&it, max (PTRDIFF_MIN, XINT (lines)));
if (nlines == 0 || IT_CHARPOS (it) > 0)
move_it_by_lines (&it, max (PTRDIFF_MIN, nlines));
else if (overshoot_handled)
it.vpos = 0;
move_it_by_lines (&it, min (PTRDIFF_MAX, XINT (lines)));
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines));
......@@ -2119,13 +2134,13 @@ whether or not it is currently displayed in some window. */)
it.vpos = 0;
move_it_by_lines (&it, 1);
if (XINT (lines) > 1)
move_it_by_lines (&it, min (PTRDIFF_MAX, XINT (lines) - 1));
if (nlines > 1)
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines - 1));
it.vpos = 0;
move_it_by_lines (&it, min (PTRDIFF_MAX, XINT (lines)));
move_it_by_lines (&it, min (PTRDIFF_MAX, nlines));
......@@ -3413,6 +3413,48 @@ handle_stop (struct it *it)
if (it->selective_display_ellipsis_p)
it->saved_face_id = it->face_id;
/* Here's the description of the semantics of, and the logic behind,
the various HANDLED_* statuses:
HANDLED_NORMALLY means the handler did its job, and the loop
should proceed to calling the next handler in order.
HANDLED_RECOMPUTE_PROPS means the handler caused a significant
change in the properties and overlays at current position, so the
loop should be restarted, to re-invoke the handlers that were
already called. This happens when fontification-functions were
called by handle_fontified_prop, and actually fontified
something. Another case where HANDLED_RECOMPUTE_PROPS is
returned is when we discover overlay strings that need to be
displayed right away. The loop below will continue for as long
HANDLED_RETURN means return immediately to the caller, to
continue iteration without calling any further handlers. This is
used when we need to act on some property right away, for example
when we need to display the ellipsis or a replacing display
property, such as display string or image.
HANDLED_OVERLAY_STRING_CONSUMED means an overlay string was just
consumed, and the handler switched to the next overlay string.
This signals the loop below to refrain from looking for more
overlays before all the overlay strings of the current overlay
are processed.
Some of the handlers called by the loop push the iterator state
onto the stack (see 'push_it'), and arrange for the iteration to
continue with another object, such as an image, a display string,
or an overlay string. In most such cases, it->stop_charpos is
set to the first character of the string, so that when the
iteration resumes, this function will immediately be called
again, to examine the properties at the beginning of the string.
When a display or overlay string is exhausted, the iterator state
is popped (see 'pop_it'), and iteration continues with the
previous object. Again, in many such cases this function is
called again to find the next position where properties might
change. */
......@@ -20621,10 +20663,15 @@ display_line (struct it *it)
row->truncated_on_right_p = 1;
it->continuation_lines_width = 0;
reseat_at_next_visible_line_start (it, 0);
if (IT_BYTEPOS (*it) <= BEG_BYTE)
row->ends_at_zv_p = true;
/* We insist below that IT's position be at ZV because in
bidi-reordered lines the character at visible line start
might not be the character that follows the newline in
the logical order. */
if (IT_BYTEPOS (*it) > BEG_BYTE)
row->ends_at_zv_p =
IT_BYTEPOS (*it) >= ZV_BYTE && FETCH_BYTE (ZV_BYTE - 1) != '\n';
row->ends_at_zv_p = FETCH_BYTE (IT_BYTEPOS (*it) - 1) != '\n';
row->ends_at_zv_p = false;
2014-08-28 Glenn Morris <>
* automated/python-tests.el (python-shell-calculate-exec-path-2):
Update test for today's python.el changes.
2014-08-13 Jan Nieuwenhuizen <>
* automated/compile-tests.el (compile--test-error-line): Grok FILE
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment