[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108225: Merge from emacs-24; up t
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/emacs-24 r108225: Merge from emacs-24; up to r107994 |
Date: |
Fri, 02 Nov 2012 01:47:51 -0000 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 108225 [merge]
committer: Chong Yidong <address@hidden>
branch nick: trunk
timestamp: Mon 2012-05-14 20:05:11 +0800
message:
Merge from emacs-24; up to r107994
modified:
doc/misc/ChangeLog
doc/misc/Makefile.in
doc/misc/cc-mode.texi
lisp/ChangeLog
lisp/mail/smtpmail.el
lisp/net/rlogin.el
lisp/shell.el
src/ChangeLog
src/unexaix.c
src/xdisp.c
=== modified file 'doc/misc/ChangeLog'
--- a/doc/misc/ChangeLog 2012-05-12 18:03:18 +0000
+++ b/doc/misc/ChangeLog 2012-05-14 11:59:28 +0000
@@ -1,3 +1,10 @@
+2012-05-12 Andreas Schwab <address@hidden>
+
+ * cc-mode.texi: Avoid space before macro in 4th argument of cross
+ reference commands. (Bug#11461)
+
+ * Makefile.in (gnus.dvi): Use $@ instead of $*.dvi.
+
2012-05-12 Glenn Morris <address@hidden>
* Makefile.in (mostlyclean): Add more TeX intermediates.
=== modified file 'doc/misc/Makefile.in'
--- a/doc/misc/Makefile.in 2012-05-12 18:04:06 +0000
+++ b/doc/misc/Makefile.in 2012-05-14 11:59:28 +0000
@@ -415,7 +415,7 @@
gnus.dvi: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi
sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
$(ENVADD) $(TEXI2DVI) gnustmp.texi
- cp gnustmp.dvi $*.dvi
+ cp gnustmp.dvi $@
rm gnustmp.*
gnus.pdf: ${srcdir}/gnus.texi ${srcdir}/gnus-faq.texi
sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
=== modified file 'doc/misc/cc-mode.texi'
--- a/doc/misc/cc-mode.texi 2012-04-11 15:24:20 +0000
+++ b/doc/misc/cc-mode.texi 2012-05-12 19:00:30 +0000
@@ -701,7 +701,7 @@
precisely what sort of ``whitespace'' this will be. Set the standard
Emacs variable @code{indent-tabs-mode} to @code{t} if you want real
@samp{tab} characters to be used in the indentation, to @code{nil} if
-you want only spaces. @xref{Just Spaces,,, @emacsman{},
+you want only spaces. @xref{Just Spaces,,,@emacsman{},
@emacsmantitle{}}.
@defopt c-tab-always-indent
@@ -1058,8 +1058,8 @@
@cindex Auto Fill mode
@cindex paragraph filling
Line breaks are by default handled (almost) the same regardless of
-whether they are made by auto fill mode (@pxref{Auto Fill,,,
address@hidden, @emacsmantitle{}}), by paragraph filling (e.g. with
+whether they are made by auto fill mode (@pxref{Auto
+Fill,,,@emacsman{}, @emacsmantitle{}}), by paragraph filling (e.g. with
@kbd{M-q}), or explicitly with @kbd{M-j} or similar methods. In
string literals, the new line gets the same indentation as the
previous nonempty address@hidden can change this default by
@@ -1402,7 +1402,7 @@
@vindex abbrev-mode
@findex abbrev-mode
@cindex Abbrev mode
address@hidden uses Abbrev mode (@pxref{Abbrevs,,, @emacsman{},
@emacsmantitle{}})
address@hidden uses Abbrev mode (@pxref{Abbrevs,,,@emacsman{},
@emacsmantitle{}})
to accomplish this. It's therefore turned on by default in all language
modes except IDL mode, since CORBA IDL doesn't have any statements.
@end deffn
@@ -2295,14 +2295,14 @@
A @dfn{file local variable setting} is a setting which applies to an
individual source file. You put this in a @dfn{local variables list},
a special block at the end of the source file (@pxref{Specifying File
-Variables,,, @emacsman{}}).
+Variables,,,@emacsman{}}).
@item File Styles
A @dfn{file style} is a rarely used variant of the ``style'' mechanism
described above, which applies to an individual source file.
@xref{File Styles}. You use this by setting certain special variables
-in a local variables list (@pxref{Specifying File Variables,,,
address@hidden).
+in a local variables list (@pxref{Specifying File
+Variables,,,@emacsman{}}).
@item Hooks with Styles
For ultimate flexibility, you can use hooks and styles together. For
@@ -2897,7 +2897,7 @@
The Emacs manual describes how you can customize certain variables on a
per-file basis by including a @dfn{file local variable} block at the end
-of the file (@pxref{File Variables,, Local Variables in Files, @emacsman{},
+of the file (@pxref{File Variables,, Local Variables in Files,@emacsman{},
@emacsmantitle{}}).
So far, you've only seen a functional interface for setting styles in
@@ -3139,8 +3139,9 @@
@end defopt
@vindex comment-multi-line
-If inside a comment and @code{comment-multi-line} (@pxref{Auto Fill,,,
address@hidden, @emacsmantitle{}} is address@hidden, the indentation and
+If inside a comment and @code{comment-multi-line} (@pxref{Auto
+Fill,,,@emacsman{}, @emacsmantitle{}} is address@hidden, the
+indentation and
line prefix are preserved. If inside a comment and
@code{comment-multi-line} is @code{nil}, a new comment of the same
type is started on the next line and indented as appropriate for
@@ -6771,7 +6772,7 @@
Controls whether a final newline is enforced when the file is saved.
The value is an association list that for each language mode specifies
the value to give to @code{require-final-newline} (@pxref{Saving
-Buffers,,, @lispref{}, @lispreftitle{}}) at mode initialization. If a
+Buffers,,,@lispref{}, @lispreftitle{}}) at mode initialization. If a
language isn't present on the association list, CC Mode won't touch
@code{require-final-newline} in buffers for that language.
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2012-05-14 05:19:46 +0000
+++ b/lisp/ChangeLog 2012-05-14 11:59:28 +0000
@@ -1,6 +1,28 @@
+2012-05-14 Troels Nielsen <address@hidden> (tiny change)
+
+ * progmodes/compile.el (compilation-internal-error-properties):
+ Calculate start position correctly when end-col is set but
+ end-line is not (Bug#11382).
+
+2012-05-14 Stefan Monnier <address@hidden>
+
+ * net/rlogin.el (rlogin-mode-map): Fix last change.
+
+2012-05-14 Jason L. Wright <address@hidden> (tiny change)
+
+ * mail/smtpmail.el (smtpmail-send-command): Send the command and
+ the following \r\n using a single `process-send-string', since the
+ Lotus SMTP server refuses to accept any commands if they are sent
+ with two `process-send-string's (Bug#11444).
+
+2012-05-14 Stefan Monnier <address@hidden>
+
+ * shell.el (shell-parse-pcomplete-arguments): Obey
+ pcomplete-arg-quote-list inside double-quoted args (Bug#11348).
+
2012-05-14 Wolfgang Jenkner <address@hidden>
- * image-mode.el: Fit to width/height for rotated images (bug#11431).
+ * image-mode.el: Fit to width/height for rotated images (Bug#11431).
(image-transform-scale, image-transform-right-angle-fudge): New vars.
(image-transform-width, image-transform-fit-width): New functions.
(image-transform-properties): Use them.
=== modified file 'lisp/mail/smtpmail.el'
--- a/lisp/mail/smtpmail.el 2012-03-09 11:06:44 +0000
+++ b/lisp/mail/smtpmail.el 2012-05-09 19:12:20 +0000
@@ -932,8 +932,7 @@
(insert (match-string 0 command) "<omitted>\r\n")
(insert command "\r\n"))
(setq smtpmail-read-point (point))
- (process-send-string process command)
- (process-send-string process "\r\n"))
+ (process-send-string process (concat command "\r\n")))
(defun smtpmail-send-data-1 (process data)
(goto-char (point-max))
=== modified file 'lisp/net/rlogin.el'
--- a/lisp/net/rlogin.el 2012-01-19 07:21:25 +0000
+++ b/lisp/net/rlogin.el 2012-05-11 12:40:43 +0000
@@ -114,12 +114,12 @@
(let ((map (if (consp shell-mode-map)
(cons 'keymap shell-mode-map)
(copy-keymap shell-mode-map))))
- (define-key rlogin-mode-map "\C-c\C-c" 'rlogin-send-Ctrl-C)
- (define-key rlogin-mode-map "\C-c\C-d" 'rlogin-send-Ctrl-D)
- (define-key rlogin-mode-map "\C-c\C-z" 'rlogin-send-Ctrl-Z)
- (define-key rlogin-mode-map "\C-c\C-\\" 'rlogin-send-Ctrl-backslash)
- (define-key rlogin-mode-map "\C-d" 'rlogin-delchar-or-send-Ctrl-D)
- (define-key rlogin-mode-map "\C-i" 'rlogin-tab-or-complete)
+ (define-key map "\C-c\C-c" 'rlogin-send-Ctrl-C)
+ (define-key map "\C-c\C-d" 'rlogin-send-Ctrl-D)
+ (define-key map "\C-c\C-z" 'rlogin-send-Ctrl-Z)
+ (define-key map "\C-c\C-\\" 'rlogin-send-Ctrl-backslash)
+ (define-key map "\C-d" 'rlogin-delchar-or-send-Ctrl-D)
+ (define-key map "\C-i" 'rlogin-tab-or-complete)
map)
"Keymap for `rlogin-mode'.")
=== modified file 'lisp/shell.el'
--- a/lisp/shell.el 2012-05-08 00:27:13 +0000
+++ b/lisp/shell.el 2012-05-09 17:20:24 +0000
@@ -400,8 +400,9 @@
(t (match-string 3)))
arg))
((match-beginning 2) ;Double quote.
- (push (replace-regexp-in-string
- "\\\\\\(.\\)" "\\1" (match-string 2))
+ (push (if (null pcomplete-arg-quote-list) (match-string 2)
+ (replace-regexp-in-string
+ "\\\\\\(.\\)" "\\1" (match-string 2)))
arg))
((match-beginning 1) ;Single quote.
(push (match-string 1) arg))
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-05-14 07:05:03 +0000
+++ b/src/ChangeLog 2012-05-14 11:59:28 +0000
@@ -1,3 +1,38 @@
+2012-05-14 Eli Zaretskii <address@hidden>
+
+ * xdisp.c (handle_stop): Don't call get_overlay_strings_1 if we
+ already have overlays loaded.
+ (handle_single_display_spec): Before returning without displaying
+ fringe bitmap, synchronize the bidi iterator with the main display
+ iterator, by calling iterate_out_of_display_property.
+ (iterate_out_of_display_property): Detect buffer iteration by
+ testing that it->string is a Lisp string.
+ (get_next_display_element): When the current object is exhausted,
+ and there's something on it->stack, call set_iterator_to_next to
+ proceed with what's on the stack, instead of returning zero.
+ (set_iterator_to_next): If called at the end of a Lisp string,
+ proceed to consider_string_end without incrementing string
+ position. Don't increment display vector index past the end of
+ the display vector. (Bug#11417)
+ (pos_visible_p): Don't report a position visible when move_it_to
+ stopped at the last line of window, which happens to be scanned
+ backwards by the bidi iteration. (Bug#11464)
+
+2012-05-14 Eli Zaretskii <address@hidden>
+
+ * xdisp.c (handle_single_display_spec): Return 1 for left-margin
+ and right-margin display specs even if the spec is invalid or we
+ are on a TTY, and thus unable to display on the fringes. That's
+ because the text with the property will not be displayed anyway,
+ so we need to signal to the caller that this is a "replacing"
+ display spec. This fixes display when the spec is invalid or we
+ are on a TTY.
+
+2012-05-14 Paul Eggert <address@hidden>
+
+ * unexaix.c (make_hdr): Fix typo in prototype.
+ This bug broke the build on AIX. Problem reported by Gilles Pion.
+
2012-05-14 Michael Albinus <address@hidden>
* keyboard.c (kbd_buffer_get_event): Read special events also in
=== modified file 'src/unexaix.c'
--- a/src/unexaix.c 2012-01-19 07:21:25 +0000
+++ b/src/unexaix.c 2012-05-09 19:44:19 +0000
@@ -110,7 +110,7 @@
error (msg, a1, a2);
}
-static int make_hdr (int, int, unsigned, unsigned, unsigned, char *, char *);
+static int make_hdr (int, int, char *, char *);
static void mark_x (char *);
static int copy_text_and_data (int);
static int copy_sym (int, int, char *, char *);
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c 2012-05-11 06:39:26 +0000
+++ b/src/xdisp.c 2012-05-14 11:59:28 +0000
@@ -849,6 +849,7 @@
static int trailing_whitespace_p (EMACS_INT);
static intmax_t message_log_check_duplicate (EMACS_INT, EMACS_INT);
static void push_it (struct it *, struct text_pos *);
+static void iterate_out_of_display_property (struct it *);
static void pop_it (struct it *);
static void sync_frame_with_window_matrix_rows (struct window *);
static void select_frame_for_redisplay (Lisp_Object);
@@ -1313,8 +1314,8 @@
glyph. */
int top_x = it.current_x;
int top_y = it.current_y;
+ /* Calling line_bottom_y may change it.method, it.position, etc. */
enum it_method it_method = it.method;
- /* Calling line_bottom_y may change it.method, it.position, etc. */
int bottom_y = (last_height = 0, line_bottom_y (&it));
int window_top_y = WINDOW_HEADER_LINE_HEIGHT (w);
@@ -1322,6 +1323,31 @@
visible_p = bottom_y > window_top_y;
else if (top_y < it.last_visible_y)
visible_p = 1;
+ if (bottom_y >= it.last_visible_y
+ && it.bidi_p && it.bidi_it.scan_dir == -1
+ && IT_CHARPOS (it) < charpos)
+ {
+ /* When the last line of the window is scanned backwards
+ under bidi iteration, we could be duped into thinking
+ that we have passed CHARPOS, when in fact move_it_to
+ simply stopped short of CHARPOS because it reached
+ last_visible_y. To see if that's what happened, we call
+ move_it_to again with a slightly larger vertical limit,
+ and see if it actually moved vertically; if it did, we
+ didn't really reach CHARPOS, which is beyond window end. */
+ struct it save_it = it;
+ /* Why 10? because we don't know how many canonical lines
+ will the height of the next line(s) be. So we guess. */
+ int ten_more_lines =
+ 10 * FRAME_LINE_HEIGHT (XFRAME (WINDOW_FRAME (w)));
+
+ move_it_to (&it, charpos, -1, bottom_y + ten_more_lines, -1,
+ MOVE_TO_POS | MOVE_TO_Y);
+ if (it.current_y > top_y)
+ visible_p = 0;
+
+ it = save_it;
+ }
if (visible_p)
{
if (it_method == GET_FROM_DISPLAY_VECTOR)
@@ -3135,7 +3161,15 @@
overlays even if the actual buffer text is replaced. */
if (!handle_overlay_change_p
|| it->sp > 1
- || !get_overlay_strings_1 (it, 0, 0))
+ /* Don't call get_overlay_strings_1 if we already
+ have overlay strings loaded, because doing so
+ will load them again and push the iterator state
+ onto the stack one more time, which is not
+ expected by the rest of the code that processes
+ overlay strings. */
+ || (it->n_overlay_strings <= 0
+ ? !get_overlay_strings_1 (it, 0, 0)
+ : 0))
{
if (it->ellipsis_p)
setup_for_ellipsis (it, 0);
@@ -4691,10 +4725,22 @@
if (!FRAME_WINDOW_P (it->f))
/* If we return here, POSITION has been advanced
across the text with this property. */
- return 0;
+ {
+ /* Synchronize the bidi iterator with POSITION. This is
+ needed because we are not going to push the iterator
+ on behalf of this display property, so there will be
+ no pop_it call to do this synchronization for us. */
+ if (it->bidi_p)
+ {
+ it->position = *position;
+ iterate_out_of_display_property (it);
+ *position = it->position;
+ }
+ return 1;
+ }
}
else if (!frame_window_p)
- return 0;
+ return 1;
#ifdef HAVE_WINDOW_SYSTEM
value = XCAR (XCDR (spec));
@@ -4702,7 +4748,15 @@
|| !(fringe_bitmap = lookup_fringe_bitmap (value)))
/* If we return here, POSITION has been advanced
across the text with this property. */
- return 0;
+ {
+ if (it && it->bidi_p)
+ {
+ it->position = *position;
+ iterate_out_of_display_property (it);
+ *position = it->position;
+ }
+ return 1;
+ }
if (it)
{
@@ -5621,7 +5675,7 @@
static void
iterate_out_of_display_property (struct it *it)
{
- int buffer_p = BUFFERP (it->object);
+ int buffer_p = !STRINGP (it->string);
EMACS_INT eob = (buffer_p ? ZV : it->end_charpos);
EMACS_INT bob = (buffer_p ? BEGV : 0);
@@ -6790,6 +6844,16 @@
&& FACE_FROM_ID (it->f, face_id)->box == FACE_NO_BOX);
}
}
+ /* If we reached the end of the object we've been iterating (e.g., a
+ display string or an overlay string), and there's something on
+ IT->stack, proceed with what's on the stack. It doesn't make
+ sense to return zero if there's unprocessed stuff on the stack,
+ because otherwise that stuff will never be displayed. */
+ if (!success_p && it->sp > 0)
+ {
+ set_iterator_to_next (it, 0);
+ success_p = get_next_display_element (it);
+ }
/* Value is 0 if end of buffer or string reached. */
return success_p;
@@ -6971,7 +7035,7 @@
display vector entry (these entries may contain faces). */
it->face_id = it->saved_face_id;
- if (it->dpvec + it->current.dpvec_index == it->dpend)
+ if (it->dpvec + it->current.dpvec_index >= it->dpend)
{
int recheck_faces = it->ellipsis_p;
@@ -7009,6 +7073,26 @@
case GET_FROM_STRING:
/* Current display element is a character from a Lisp string. */
xassert (it->s == NULL && STRINGP (it->string));
+ /* Don't advance past string end. These conditions are true
+ when set_iterator_to_next is called at the end of
+ get_next_display_element, in which case the Lisp string is
+ already exhausted, and all we want is pop the iterator
+ stack. */
+ if (it->current.overlay_string_index >= 0)
+ {
+ /* This is an overlay string, so there's no padding with
+ spaces, and the number of characters in the string is
+ where the string ends. */
+ if (IT_STRING_CHARPOS (*it) >= SCHARS (it->string))
+ goto consider_string_end;
+ }
+ else
+ {
+ /* Not an overlay string. There could be padding, so test
+ against it->end_charpos . */
+ if (IT_STRING_CHARPOS (*it) >= it->end_charpos)
+ goto consider_string_end;
+ }
if (it->cmp_it.id >= 0)
{
int i;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/emacs-24 r108225: Merge from emacs-24; up to r107994,
Chong Yidong <=