# HG changeset patch # User Eli Zaretskii # Date 1267870587 18000 # Node ID 772da445ced7b31a55af236d410e3d18dc48c881 # Parent 59df2de8b31d705982f4fb5fd1564885eb676260# Parent 8bc19ba3da902e50714084fd9b6a3be60fb1737a Merge from mainline. diff -r 59df2de8b31d -r 772da445ced7 admin/FOR-RELEASE --- a/admin/FOR-RELEASE Sat Feb 27 07:43:30 2010 -0500 +++ b/admin/FOR-RELEASE Sat Mar 06 05:16:27 2010 -0500 @@ -252,8 +252,6 @@ * PLANNED ADDITIONS -** CEDET (not for 23.1 due to paperwork issues, perhaps for 23.2) -** js2-mode ** pov-mode (probably not for Emacs-23: waiting for a Free POV-Ray). ** gas-mode ? diff -r 59df2de8b31d -r 772da445ced7 doc/emacs/ChangeLog --- a/doc/emacs/ChangeLog Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/emacs/ChangeLog Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,10 @@ +2010-03-02 Chong Yidong + + * frames.texi (Mouse Avoidance): Mention make-pointer-invisible. + + * display.texi (Display Custom): Document make-pointer-invisible and + underline-minimum-offset. Remove inverse-video. + 2010-02-21 Chong Yidong * frames.texi (Frame Commands): Note that the last ordinary frame can diff -r 59df2de8b31d -r 772da445ced7 doc/emacs/display.texi --- a/doc/emacs/display.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/emacs/display.texi Sat Mar 06 05:16:27 2010 -0500 @@ -1278,10 +1278,6 @@ @c the reason for that pxref is because an xref early in the @c ``echo area'' section leads here. -@vindex inverse-video - If the variable @code{inverse-video} is non-@code{nil}, Emacs attempts -to invert all the lines of the display from what they normally are. - @vindex visible-bell If the variable @code{visible-bell} is non-@code{nil}, Emacs attempts to make the whole screen blink when it would normally make an audible bell @@ -1296,35 +1292,51 @@ @vindex baud-rate The variable @anchor{baud-rate}@code{baud-rate} holds the output -speed of the terminal, as far as Emacs knows. Setting this variable -does not change the speed of actual data transmission, but the value -is used for calculations. On text-only terminals, it affects padding, -and decisions about whether to scroll part of the screen or redraw it -instead. It also affects the behavior of incremental search. - - On graphical displays, @code{baud-rate} is only used to determine -how frequently to look for pending input during display updating. A +speed of the terminal. Setting this variable does not change the +speed of actual data transmission, but the value is used for +calculations. On text-only terminals, it affects padding, and +decisions about whether to scroll part of the screen or redraw it +instead. It also affects the behavior of incremental search. On +graphical displays, @code{baud-rate} is only used to determine how +frequently to look for pending input during display updating. A higher value of @code{baud-rate} means that check for pending input will be done less frequently. +@cindex mouse pointer @cindex hourglass pointer display +@vindex display-hourglass @vindex hourglass-delay - On graphical displays, Emacs can optionally display the mouse pointer -in a special shape to say that Emacs is busy. To turn this feature on -or off, customize the group @code{cursor}. You can also control the -amount of time Emacs must remain busy before the busy indicator is -displayed, by setting the variable @code{hourglass-delay}. + On graphical displays, Emacs displays the mouse pointer as an +hourglass if Emacs is busy. To disable this feature, set the variable +@code{display-hourglass} to @code{nil}. The variable +@code{hourglass-delay} determines the number of seconds of ``busy +time'' before the hourglass is shown; the default is 1. + +@vindex make-pointer-invisible + If the mouse pointer lies inside an Emacs frame, Emacs makes it +invisible each time you type a character to insert text, to prevent it +from obscuring the text. (To be precise, the hiding occurs when you +type a ``self-inserting'' character. @xref{Inserting Text}.) Moving +the mouse pointer makes it visible again. To disable this feature, +set the variable @code{make-pointer-invisible} to @code{nil}. + +@vindex underline-minimum-offset +@vindex x-underline-at-descent-line + On graphical displays, the variable @code{underline-minimum-offset} +determines the minimum distance between the baseline and underline, in +pixels, for underlined text. By default, the value is 1; increasing +it may improve the legibility of underlined text for certain fonts. +(However, Emacs will never draw the underline below the current line +area.) The variable @code{x-underline-at-descent-line} determines how +to draw underlined text. The default is @code{nil}, which means to +draw it at the baseline level of the font; if you change it to +@code{nil}, Emacs draws the underline at the same height as the font's +descent line. @vindex overline-margin - On graphical displays, the variable @code{overline-margin} specifies -the vertical position of an overline above the text, including the -height of the overline itself, in pixels. The default value is 2. - -@vindex x-underline-at-descent-line - On graphical displays, Emacs normally draws an underline at the -baseline level of the font. If @code{x-underline-at-descent-line} is -non-@code{nil}, Emacs draws the underline at the same height as the -font's descent line. + The variable @code{overline-margin} specifies the vertical position +of an overline above the text, including the height of the overline +itself, in pixels; the default is 2. @findex tty-suppress-bold-inverse-default-colors On some text-only terminals, bold face and inverse video together diff -r 59df2de8b31d -r 772da445ced7 doc/emacs/frames.texi --- a/doc/emacs/frames.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/emacs/frames.texi Sat Mar 06 05:16:27 2010 -0500 @@ -50,7 +50,7 @@ * Tool Bars:: Enabling and disabling the tool bar. * Dialog Boxes:: Controlling use of dialog boxes. * Tooltips:: Displaying information at the current mouse position. -* Mouse Avoidance:: Moving the mouse pointer out of the way. +* Mouse Avoidance:: Preventing the mouse pointer from obscuring text. * Non-Window Terminals:: Multiple frames on terminals that show only one. * Text-Only Mouse:: Using the mouse in text-only terminals. @end menu @@ -1072,12 +1072,20 @@ @cindex avoiding mouse in the way of your typing @cindex mouse avoidance + On graphical terminals, the mouse pointer may obscure the text in +the Emacs frame. Emacs provides two methods to avoid this problem. + +@vindex make-pointer-invisible + Firstly, Emacs hides the mouse pointer each time you type a +self-inserting character, if the pointer lies inside an Emacs frame; +moving the mouse pointer makes it visible again. To disable this +feature, set the variable @code{make-pointer-invisible} to @code{nil}. + @vindex mouse-avoidance-mode -Mouse Avoidance mode keeps the mouse pointer away from point, to avoid -obscuring text you want to edit. Whenever it moves the mouse, it also -raises the frame. To use Mouse Avoidance mode, customize the variable -@code{mouse-avoidance-mode}. You can set this to various values to -move the mouse in several ways: + Secondly, you can use Mouse Avoidance mode, a minor mode, to keep +the mouse pointer away from point. To use Mouse Avoidance mode, +customize the variable @code{mouse-avoidance-mode}. You can set this +to various values to move the mouse in several ways: @table @code @item banish @@ -1098,7 +1106,8 @@ @findex mouse-avoidance-mode You can also use the command @kbd{M-x mouse-avoidance-mode} to enable -the mode. +the mode. Whenever Mouse Avoidance mode moves the mouse, it also +raises the frame. @node Non-Window Terminals @section Non-Window Terminals diff -r 59df2de8b31d -r 772da445ced7 doc/lispref/ChangeLog --- a/doc/lispref/ChangeLog Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/lispref/ChangeLog Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,12 @@ +2010-03-03 Glenn Morris + + * numbers.texi (Integer Basics, Bitwise Operations): + * objects.texi (Integer Type): Update for integers now being 30-bit. + +2010-02-27 Chong Yidong + + * display.texi (Low-Level Font): Document :otf font-spec property. + 2010-02-01 Stefan Monnier * display.texi (Line Height): Avoid obsolete special default variables diff -r 59df2de8b31d -r 772da445ced7 doc/lispref/display.texi --- a/doc/lispref/display.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/lispref/display.texi Sat Mar 06 05:16:27 2010 -0500 @@ -3068,6 +3068,26 @@ @item :script The script that the font must support (a symbol). + +@item :otf +The font must be an OpenType font that supports these OpenType +features, provided Emacs is compiled with support for @samp{libotf} (a +library for performing complex text layout in certain scripts). The +value must be a list of the form + +@smallexample +@code{(@var{script-tag} @var{langsys-tag} @var{gsub} @var{gpos})} +@end smallexample + +where @var{script-tag} is the OpenType script tag symbol; +@var{langsys-tag} is the OpenType language system tag symbol, or +@code{nil} to use the default language system; @code{gsub} is a list +of OpenType GSUB feature tag symbols, or @code{nil} if none is +required; and @code{gpos} is a list of OpenType GPOS feature tag +symbols, or @code{nil} if none is required. If @code{gsub} or +@code{gpos} is a list, a @code{nil} element in that list means that +the font must not match any of the remaining tag symbols. The +@code{gpos} element may be omitted. @end table @end defun diff -r 59df2de8b31d -r 772da445ced7 doc/lispref/numbers.texi --- a/doc/lispref/numbers.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/lispref/numbers.texi Sat Mar 06 05:16:27 2010 -0500 @@ -1,7 +1,8 @@ @c -*-texinfo-*- @c This is part of the GNU Emacs Lisp Reference Manual. @c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, -@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +@c 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +@c Free Software Foundation, Inc. @c See the file elisp.texi for copying conditions. @setfilename ../../info/numbers @node Numbers, Strings and Characters, Lisp Data Types, Top @@ -36,22 +37,22 @@ @section Integer Basics The range of values for an integer depends on the machine. The -minimum range is @minus{}268435456 to 268435455 (29 bits; i.e., +minimum range is @minus{}536870912 to 536870911 (30 bits; i.e., @ifnottex --2**28 +-2**29 @end ifnottex @tex -@math{-2^{28}} +@math{-2^{29}} @end tex to @ifnottex -2**28 - 1), +2**29 - 1), @end ifnottex @tex -@math{2^{28}-1}), +@math{2^{29}-1}), @end tex but some machines may provide a wider range. Many examples in this -chapter assume an integer has 29 bits. +chapter assume an integer has 30 bits. @cindex overflow The Lisp reader reads an integer as a sequence of digits with optional @@ -62,7 +63,7 @@ 1. ; @r{The integer 1.} +1 ; @r{Also the integer 1.} -1 ; @r{The integer @minus{}1.} - 536870913 ; @r{Also the integer 1, due to overflow.} + 1073741825 ; @r{Also the integer 1, due to overflow.} 0 ; @r{The integer 0.} -0 ; @r{The integer 0.} @end example @@ -93,10 +94,10 @@ bitwise operators (@pxref{Bitwise Operations}), it is often helpful to view the numbers in their binary form. - In 29-bit binary, the decimal integer 5 looks like this: + In 30-bit binary, the decimal integer 5 looks like this: @example -0 0000 0000 0000 0000 0000 0000 0101 +00 0000 0000 0000 0000 0000 0000 0101 @end example @noindent @@ -106,12 +107,12 @@ The integer @minus{}1 looks like this: @example -1 1111 1111 1111 1111 1111 1111 1111 +11 1111 1111 1111 1111 1111 1111 1111 @end example @noindent @cindex two's complement -@minus{}1 is represented as 29 ones. (This is called @dfn{two's +@minus{}1 is represented as 30 ones. (This is called @dfn{two's complement} notation.) The negative integer, @minus{}5, is creating by subtracting 4 from @@ -119,24 +120,24 @@ @minus{}5 looks like this: @example -1 1111 1111 1111 1111 1111 1111 1011 +11 1111 1111 1111 1111 1111 1111 1011 @end example - In this implementation, the largest 29-bit binary integer value is -268,435,455 in decimal. In binary, it looks like this: + In this implementation, the largest 30-bit binary integer value is +536,870,911 in decimal. In binary, it looks like this: @example -0 1111 1111 1111 1111 1111 1111 1111 +01 1111 1111 1111 1111 1111 1111 1111 @end example Since the arithmetic functions do not check whether integers go -outside their range, when you add 1 to 268,435,455, the value is the -negative integer @minus{}268,435,456: +outside their range, when you add 1 to 536,870,911, the value is the +negative integer @minus{}536,870,912: @example -(+ 1 268435455) - @result{} -268435456 - @result{} 1 0000 0000 0000 0000 0000 0000 0000 +(+ 1 536870911) + @result{} -536870912 + @result{} 10 0000 0000 0000 0000 0000 0000 0000 @end example Many of the functions described in this chapter accept markers for @@ -820,19 +821,19 @@ The function @code{lsh}, like all Emacs Lisp arithmetic functions, does not check for overflow, so shifting left can discard significant bits and change the sign of the number. For example, left shifting -268,435,455 produces @minus{}2 on a 29-bit machine: +536,870,911 produces @minus{}2 on a 30-bit machine: @example -(lsh 268435455 1) ; @r{left shift} +(lsh 536870911 1) ; @r{left shift} @result{} -2 @end example -In binary, in the 29-bit implementation, the argument looks like this: +In binary, in the 30-bit implementation, the argument looks like this: @example @group -;; @r{Decimal 268,435,455} -0 1111 1111 1111 1111 1111 1111 1111 +;; @r{Decimal 536,870,911} +01 1111 1111 1111 1111 1111 1111 1111 @end group @end example @@ -842,7 +843,7 @@ @example @group ;; @r{Decimal @minus{}2} -1 1111 1111 1111 1111 1111 1111 1110 +11 1111 1111 1111 1111 1111 1111 1110 @end group @end example @end defun @@ -865,9 +866,9 @@ @group (ash -6 -1) @result{} -3 ;; @r{Decimal @minus{}6 becomes decimal @minus{}3.} -1 1111 1111 1111 1111 1111 1111 1010 +11 1111 1111 1111 1111 1111 1111 1010 @result{} -1 1111 1111 1111 1111 1111 1111 1101 +11 1111 1111 1111 1111 1111 1111 1101 @end group @end example @@ -876,11 +877,11 @@ @example @group -(lsh -6 -1) @result{} 268435453 -;; @r{Decimal @minus{}6 becomes decimal 268,435,453.} -1 1111 1111 1111 1111 1111 1111 1010 +(lsh -6 -1) @result{} 536870909 +;; @r{Decimal @minus{}6 becomes decimal 536,870,909.} +11 1111 1111 1111 1111 1111 1111 1010 @result{} -0 1111 1111 1111 1111 1111 1111 1101 +01 1111 1111 1111 1111 1111 1111 1101 @end group @end example @@ -890,34 +891,34 @@ @c with smallbook but not with regular book! --rjc 16mar92 @smallexample @group - ; @r{ 29-bit binary values} + ; @r{ 30-bit binary values} -(lsh 5 2) ; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} - @result{} 20 ; = @r{0 0000 0000 0000 0000 0000 0001 0100} +(lsh 5 2) ; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} + @result{} 20 ; = @r{00 0000 0000 0000 0000 0000 0001 0100} @end group @group (ash 5 2) @result{} 20 -(lsh -5 2) ; -5 = @r{1 1111 1111 1111 1111 1111 1111 1011} - @result{} -20 ; = @r{1 1111 1111 1111 1111 1111 1110 1100} +(lsh -5 2) ; -5 = @r{11 1111 1111 1111 1111 1111 1111 1011} + @result{} -20 ; = @r{11 1111 1111 1111 1111 1111 1110 1100} (ash -5 2) @result{} -20 @end group @group -(lsh 5 -2) ; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} - @result{} 1 ; = @r{0 0000 0000 0000 0000 0000 0000 0001} +(lsh 5 -2) ; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} + @result{} 1 ; = @r{00 0000 0000 0000 0000 0000 0000 0001} @end group @group (ash 5 -2) @result{} 1 @end group @group -(lsh -5 -2) ; -5 = @r{1 1111 1111 1111 1111 1111 1111 1011} - @result{} 134217726 ; = @r{0 0111 1111 1111 1111 1111 1111 1110} +(lsh -5 -2) ; -5 = @r{11 1111 1111 1111 1111 1111 1111 1011} + @result{} 268435454 ; = @r{00 0111 1111 1111 1111 1111 1111 1110} @end group @group -(ash -5 -2) ; -5 = @r{1 1111 1111 1111 1111 1111 1111 1011} - @result{} -2 ; = @r{1 1111 1111 1111 1111 1111 1111 1110} +(ash -5 -2) ; -5 = @r{11 1111 1111 1111 1111 1111 1111 1011} + @result{} -2 ; = @r{11 1111 1111 1111 1111 1111 1111 1110} @end group @end smallexample @end defun @@ -952,23 +953,23 @@ @smallexample @group - ; @r{ 29-bit binary values} + ; @r{ 30-bit binary values} -(logand 14 13) ; 14 = @r{0 0000 0000 0000 0000 0000 0000 1110} - ; 13 = @r{0 0000 0000 0000 0000 0000 0000 1101} - @result{} 12 ; 12 = @r{0 0000 0000 0000 0000 0000 0000 1100} +(logand 14 13) ; 14 = @r{00 0000 0000 0000 0000 0000 0000 1110} + ; 13 = @r{00 0000 0000 0000 0000 0000 0000 1101} + @result{} 12 ; 12 = @r{00 0000 0000 0000 0000 0000 0000 1100} @end group @group -(logand 14 13 4) ; 14 = @r{0 0000 0000 0000 0000 0000 0000 1110} - ; 13 = @r{0 0000 0000 0000 0000 0000 0000 1101} - ; 4 = @r{0 0000 0000 0000 0000 0000 0000 0100} - @result{} 4 ; 4 = @r{0 0000 0000 0000 0000 0000 0000 0100} +(logand 14 13 4) ; 14 = @r{00 0000 0000 0000 0000 0000 0000 1110} + ; 13 = @r{00 0000 0000 0000 0000 0000 0000 1101} + ; 4 = @r{00 0000 0000 0000 0000 0000 0000 0100} + @result{} 4 ; 4 = @r{00 0000 0000 0000 0000 0000 0000 0100} @end group @group (logand) - @result{} -1 ; -1 = @r{1 1111 1111 1111 1111 1111 1111 1111} + @result{} -1 ; -1 = @r{11 1111 1111 1111 1111 1111 1111 1111} @end group @end smallexample @end defun @@ -982,18 +983,18 @@ @smallexample @group - ; @r{ 29-bit binary values} + ; @r{ 30-bit binary values} -(logior 12 5) ; 12 = @r{0 0000 0000 0000 0000 0000 0000 1100} - ; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} - @result{} 13 ; 13 = @r{0 0000 0000 0000 0000 0000 0000 1101} +(logior 12 5) ; 12 = @r{00 0000 0000 0000 0000 0000 0000 1100} + ; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} + @result{} 13 ; 13 = @r{00 0000 0000 0000 0000 0000 0000 1101} @end group @group -(logior 12 5 7) ; 12 = @r{0 0000 0000 0000 0000 0000 0000 1100} - ; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} - ; 7 = @r{0 0000 0000 0000 0000 0000 0000 0111} - @result{} 15 ; 15 = @r{0 0000 0000 0000 0000 0000 0000 1111} +(logior 12 5 7) ; 12 = @r{00 0000 0000 0000 0000 0000 0000 1100} + ; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} + ; 7 = @r{00 0000 0000 0000 0000 0000 0000 0111} + @result{} 15 ; 15 = @r{00 0000 0000 0000 0000 0000 0000 1111} @end group @end smallexample @end defun @@ -1007,18 +1008,18 @@ @smallexample @group - ; @r{ 29-bit binary values} + ; @r{ 30-bit binary values} -(logxor 12 5) ; 12 = @r{0 0000 0000 0000 0000 0000 0000 1100} - ; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} - @result{} 9 ; 9 = @r{0 0000 0000 0000 0000 0000 0000 1001} +(logxor 12 5) ; 12 = @r{00 0000 0000 0000 0000 0000 0000 1100} + ; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} + @result{} 9 ; 9 = @r{00 0000 0000 0000 0000 0000 0000 1001} @end group @group -(logxor 12 5 7) ; 12 = @r{0 0000 0000 0000 0000 0000 0000 1100} - ; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} - ; 7 = @r{0 0000 0000 0000 0000 0000 0000 0111} - @result{} 14 ; 14 = @r{0 0000 0000 0000 0000 0000 0000 1110} +(logxor 12 5 7) ; 12 = @r{00 0000 0000 0000 0000 0000 0000 1100} + ; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} + ; 7 = @r{00 0000 0000 0000 0000 0000 0000 0111} + @result{} 14 ; 14 = @r{00 0000 0000 0000 0000 0000 0000 1110} @end group @end smallexample @end defun @@ -1031,9 +1032,9 @@ @example (lognot 5) @result{} -6 -;; 5 = @r{0 0000 0000 0000 0000 0000 0000 0101} +;; 5 = @r{00 0000 0000 0000 0000 0000 0000 0101} ;; @r{becomes} -;; -6 = @r{1 1111 1111 1111 1111 1111 1111 1010} +;; -6 = @r{11 1111 1111 1111 1111 1111 1111 1010} @end example @end defun diff -r 59df2de8b31d -r 772da445ced7 doc/lispref/objects.texi --- a/doc/lispref/objects.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/lispref/objects.texi Sat Mar 06 05:16:27 2010 -0500 @@ -165,24 +165,24 @@ @node Integer Type @subsection Integer Type - The range of values for integers in Emacs Lisp is @minus{}268435456 to -268435455 (29 bits; i.e., + The range of values for integers in Emacs Lisp is @minus{}536870912 to +536870911 (30 bits; i.e., @ifnottex --2**28 +-2**29 @end ifnottex @tex -@math{-2^{28}} +@math{-2^{29}} @end tex to @ifnottex -2**28 - 1) +2**29 - 1) @end ifnottex @tex -@math{2^{28}-1}) +@math{2^{29}-1}) @end tex on most machines. (Some machines may provide a wider range.) It is important to note that the Emacs Lisp arithmetic functions do not check -for overflow. Thus @code{(1+ 268435455)} is @minus{}268435456 on most +for overflow. Thus @code{(1+ 536870911)} is @minus{}536870912 on most machines. The read syntax for integers is a sequence of (base ten) digits with an @@ -196,7 +196,7 @@ 1 ; @r{The integer 1.} 1. ; @r{Also the integer 1.} +1 ; @r{Also the integer 1.} -536870913 ; @r{Also the integer 1 on a 29-bit implementation.} +1073741825 ; @r{Also the integer 1 on a 30-bit implementation.} @end group @end example diff -r 59df2de8b31d -r 772da445ced7 doc/misc/ChangeLog --- a/doc/misc/ChangeLog Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/misc/ChangeLog Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,13 @@ +2010-03-03 Chong Yidong + + * faq.texi (Escape sequences in shell output): Note that ansi-color is + now enabled by default. + +2010-02-28 Michael Albinus + + * dbus.texi (Errors and Events): D-Bus messages are retrieved only, + when Emacs runs in interactive mode. (Bug#5645) + 2010-02-16 Glenn Morris * nxml-mode.texi (Commands for locating a schema): Fix keybinding. diff -r 59df2de8b31d -r 772da445ced7 doc/misc/dbus.texi --- a/doc/misc/dbus.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/misc/dbus.texi Sat Mar 06 05:16:27 2010 -0500 @@ -1591,8 +1591,9 @@ @code{t}. @end defspec -Incoming D-Bus messages are handled as Emacs events (see @pxref{Misc -Events, , , elisp}). The generated event has this form: +Incoming D-Bus messages are handled as Emacs events, see @pxref{Misc +Events, , , elisp}. They are retrieved only, when Emacs runs in +interactive mode. The generated event has this form: @lisp (dbus-event @var{bus} @var{type} @var{serial} @var{service} @var{path} @var{interface} @var{member} @var{handler} diff -r 59df2de8b31d -r 772da445ced7 doc/misc/faq.texi --- a/doc/misc/faq.texi Sat Feb 27 07:43:30 2010 -0500 +++ b/doc/misc/faq.texi Sat Mar 06 05:16:27 2010 -0500 @@ -2617,22 +2617,19 @@ @cindex Escape sequences in @code{ls} output @cindex @code{ls} in Shell mode -This happens because @code{ls} is aliased to @samp{ls --color} in your -shell init file. You have two alternatives to solve this: - -@itemize @bullet -@item -Make the alias conditioned on the @code{EMACS} variable in the -environment. When Emacs runs a subsidiary shell, it exports the -@code{EMACS} variable to that shell, with value equal to the absolute -file name of Emacs. You can -unalias @code{ls} when that happens, thus limiting the alias to your -interactive sessions. - -@item -Install the @code{ansi-color} package (bundled with Emacs 21.1 and -later), which converts these ANSI escape sequences into colors. -@end itemize +In many systems, @code{ls} is aliased to @samp{ls --color}, which +prints using ANSI color escape sequences. Emacs version 21.1 and +later includes the @code{ansi-color} package, which lets Shell mode +recognize these escape sequences. In Emacs 23.2 and later, the +package is enabled by default; in earlier versions you can enable it +by typing @kbd{M-x ansi-color-for-comint-mode} in the Shell buffer, or +by adding @code{(add-hook 'shell-mode-hook +'ansi-color-for-comint-mode-on)} to your init file. + +In Emacs versions before 21.1, the @code{ansi-color} package is not +included. In that case, you need to unalias @code{ls} for interactive +shells running in Emacs; this can be done by checking the @code{EMACS} +variable in the environment. @node Fullscreen mode on MS-Windows @section How can I start Emacs in fullscreen mode on MS-Windows? diff -r 59df2de8b31d -r 772da445ced7 etc/ChangeLog --- a/etc/ChangeLog Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/ChangeLog Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,41 @@ +2010-03-06 Glenn Morris + + * srecode/default.srt (COPYRIGHT): Update template copyright to GPLv3+. + +2010-03-05 Glenn Morris + + * refcards/orgcard.tex: Use pdflayout.sty. + * refcards/Makefile (orgcard.pdf): Special rule no longer needed. + +2010-03-02 Glenn Morris + + * refcards/Makefile: For cs- and sk-, use pdfcsplain if available. + (pl-refcard.pdf): Let presence of pdfmex be another test for the + required TeX files. Pass explicit output-format to tex command. + (orgcard.pdf): Use ps2pdf, since pdftex tends to produce a + portrait layout rather than the desired landscape. + +2010-03-01 Glenn Morris + + * refcards/pl-refcard.tex: Double forward-slashes in URL for Mex. + + * refcards/de-refcard.tex: Fix paren typo. + + * refcards/ru-refcard.tex: Rename \year command to \cyear, since + the former seems to be already used in some TeX installations. + + * refcards/calccard.tex, refcards/cs-dired-ref.tex: + * refcards/cs-refcard.tex, refcards/cs-survival.tex: + * refcards/de-refcard.tex, refcards/dired-ref.tex: + * refcards/fr-dired-ref.tex, refcards/fr-refcard.tex: + * refcards/fr-survival.tex, refcards/orgcard.pdf: + * refcards/orgcard.tex, refcards/pl-refcard.tex: + * refcards/pt-br-refcard.tex, refcards/refcard.tex: + * refcards/ru-refcard.tex, refcards/sk-dired-ref.tex: + * refcards/sk-refcard.tex, refcards/sk-survival.tex: + * refcards/survival.tex, refcards/vipcard.tex: + * refcards/viperCard.tex: Update short copyright year to 2010. + 2010-02-26 Glenn Morris * tutorials/TUTORIAL.es, tutorials/TUTORIAL.pt_BR: @@ -5,9 +43,9 @@ 2010-02-14 Chong Yidong - * etc/images/custom/down-pushed.xpm, etc/images/custom/down.xpm: - * etc/images/custom/right-pushed.xpm: - * etc/images/custom/right-pushed.xpm: Increase height by four + * images/custom/down-pushed.xpm, images/custom/down.xpm: + * images/custom/right-pushed.xpm: + * images/custom/right-pushed.xpm: Increase height by four pixels, to improve text alignment. 2010-01-16 Mario Lang @@ -17,10 +55,10 @@ 2010-01-14 Nick Roberts - * etc/images/gud/recstart.xpm, etc/images/gud/recstop.xpm: - * etc/images/gud/rcont.xpm, etc/images/gud/rnext.xpm: - * etc/images/gud/rfinish.xpm, etc/images/gud/rnexti.xpm: - * etc/images/gud/rstep.xpm, etc/images/gud/rstepi.xpm: + * images/gud/recstart.xpm, images/gud/recstop.xpm: + * images/gud/rcont.xpm, images/gud/rnext.xpm: + * images/gud/rfinish.xpm, images/gud/rnexti.xpm: + * images/gud/rstep.xpm, images/gud/rstepi.xpm: New icons for reverse debugging. 2010-01-14 Juanma Barranquero @@ -2559,7 +2597,7 @@ * images/gud/ni.xpm, images/gud/ni.xpm * images/gud/s.xpm, images/gud/s.xpm * images/gud/si.xpm, images/gud/si.xpm: Rename to - next.*, nexti.*, step.*, and stepi.* , respectively, as the + next.*, nexti.*, step.*, and stepi.*, respectively, as the file-name no longer clashes on 8+3 filesystems. 2005-10-14 Bill Wohler diff -r 59df2de8b31d -r 772da445ced7 etc/NEWS --- a/etc/NEWS Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/NEWS Sat Mar 06 05:16:27 2010 -0500 @@ -66,6 +66,7 @@ KDE, and XFCE desktops. (This change has no effect on Windows, which uses `system-move-file-to-trash' for trashing.) ++++ ** The pointer now becomes invisible when typing. Customize `make-pointer-invisible' to disable this feature. @@ -122,11 +123,6 @@ ** Function arguments in *Help* buffers are now shown in upper-case. Customize `help-downcase-arguments' to t to show them in lower-case. -** Delete Auto Composition Mode. Now the variable -`auto-composition-mode' is simply a buffer local variable. The -commands `auto-composition-mode' and `global-auto-composition-mode' -still works as before. - * Editing Changes in Emacs 23.2 @@ -281,7 +277,7 @@ ** nXML mode is now the default for editing XML files. ** Shell - ++++ *** ansi-color is now enabled by default. To disable it, set ansi-color-for-comint-mode to nil. @@ -362,7 +358,7 @@ *** Customize `elint-ignored-warnings' to suppress some warnings. ** Miscellaneous - ++++ *** The new command `async-shell-command' bound globally to `M-&' executes the command asynchronously without the need to manually add ampersand to the end of the command. Its output appears in the buffer `*Async Shell @@ -436,6 +432,7 @@ * Incompatible Lisp Changes in Emacs 23.2 +--- ** Several obsolete functions removed. The functions have been obsolete since Emacs 19, and are unlikely to be in use: diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/Makefile --- a/etc/refcards/Makefile Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/Makefile Sat Mar 06 05:16:27 2010 -0500 @@ -55,13 +55,19 @@ cs-refcard.pdf cs-dired-ref.pdf cs-survival.pdf sk-refcard.pdf \ sk-dired-ref.pdf sk-survival.pdf: %.pdf: %.tex - csplain "\pdfoutput=1\input $<" + if pdfcsplain --version > /dev/null 2> /dev/null; then \ + pdfcsplain $<; \ + else \ + csplain "\pdfoutput=1\input $<"; \ + fi +## Some versions of pdfmex seem to create dvi by default, hence output-format. pl-refcard.pdf: %.pdf: %.tex - if ! kpsewhich -format=fmt mex > /dev/null; then \ + if ! kpsewhich -format=fmt mex > /dev/null && \ + ! pdfmex --version > /dev/null 2> /dev/null; then \ echo "No mex format found."; false; \ fi - pdftex $< + pdftex -output-format=pdf $< ru-refcard.pdf: %.pdf: %.tex pdflatex $< @@ -80,7 +86,6 @@ pdftex $< - ## dvi files. cs-refcard.dvi cs-dired-ref.dvi cs-survival.dvi sk-refcard.dvi \ diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/calccard.pdf Binary file etc/refcards/calccard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/calccard.tex --- a/etc/refcards/calccard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/calccard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -20,8 +20,8 @@ % Typical command to format: tex calccard.tex % Typical command to print (3 cols): dvips -t landscape calccard.dvi -% Copyright (C) 1987, 1992, 2001, 2002, 2003, 2004, -% 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +% Copyright (C) 1987, 1992, 2001, 2002, 2003, 2004, 2005, 2006, 2007, +% 2008, 2009, 2010 Free Software Foundation, Inc. % This file is part of GNU Emacs. @@ -65,7 +65,7 @@ % Internet: gildea@stop.mail-abuse.org \def\emacsversionnumber{23} -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/cs-dired-ref.pdf Binary file etc/refcards/cs-dired-ref.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/cs-dired-ref.tex --- a/etc/refcards/cs-dired-ref.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/cs-dired-ref.tex Sat Mar 06 05:16:27 2010 -0500 @@ -43,7 +43,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/cs-refcard.pdf Binary file etc/refcards/cs-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/cs-refcard.tex --- a/etc/refcards/cs-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/cs-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -60,7 +60,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/cs-survival.tex --- a/etc/refcards/cs-survival.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/cs-survival.tex Sat Mar 06 05:16:27 2010 -0500 @@ -56,7 +56,7 @@ \chyph \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/de-refcard.pdf Binary file etc/refcards/de-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/de-refcard.tex --- a/etc/refcards/de-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/de-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -62,7 +62,7 @@ \mdqoff % deactivates the "-char \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed below this line. @@ -83,7 +83,7 @@ F\"ur Kopien des Handbuchs zu GNU Emacs: -\tt http://www.gnu.org/software/emacs/\#Manuals} +{\tt http://www.gnu.org/software/emacs/\#Manuals} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/dired-ref.pdf Binary file etc/refcards/dired-ref.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/dired-ref.tex --- a/etc/refcards/dired-ref.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/dired-ref.tex Sat Mar 06 05:16:27 2010 -0500 @@ -45,7 +45,7 @@ \pdflayout=(1) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/fr-dired-ref.pdf Binary file etc/refcards/fr-dired-ref.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/fr-dired-ref.tex --- a/etc/refcards/fr-dired-ref.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/fr-dired-ref.tex Sat Mar 06 05:16:27 2010 -0500 @@ -37,7 +37,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/fr-refcard.pdf Binary file etc/refcards/fr-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/fr-refcard.tex --- a/etc/refcards/fr-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/fr-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -57,7 +57,7 @@ \pdflayout=(0l) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed below this line. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/fr-survival.tex --- a/etc/refcards/fr-survival.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/fr-survival.tex Sat Mar 06 05:16:27 2010 -0500 @@ -51,7 +51,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/gnus-booklet.pdf Binary file etc/refcards/gnus-booklet.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/gnus-refcard.pdf Binary file etc/refcards/gnus-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/orgcard.pdf Binary file etc/refcards/orgcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/orgcard.tex --- a/etc/refcards/orgcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/orgcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -1,7 +1,7 @@ % Reference Card for Org Mode \def\orgversionnumber{6.33x} \def\versionyear{2009} % latest update -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year %**start of header \newcount\columnsperpage @@ -9,13 +9,16 @@ % This file can be printed with 1, 2, or 3 columns per page (see below). % Specify how many you want here. - \columnsperpage=3 % Set letterpaper to 0 for A4 paper, 1 for letter (US) paper. Useful % only when columnsperpage is 2 or 3. +\letterpaper=0 -\letterpaper=0 +% PDF output layout. 0 for A4, 1 for letter (US), a `l' is added for +% a landscape layout. +\input pdflayout.sty +\pdflayout=(0l) % Nothing else needs to be changed below this line. % Copyright (C) 1987, 1993, 1996, 1997, 2001, 2002, 2003, 2004, 2005, diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/pl-refcard.pdf Binary file etc/refcards/pl-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/pl-refcard.tex --- a/etc/refcards/pl-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/pl-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -71,7 +71,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. @@ -92,7 +92,7 @@ For copies of the GNU Emacs manual, see: -{\tt http://www.gnu.org/software/emacs/\#Manuals} +{\tt http:////www.gnu.org//software//emacs//\#Manuals} \endgroup} % make \bye not \outer so that the \def\bye in the \else clause below diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/pt-br-refcard.pdf Binary file etc/refcards/pt-br-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/pt-br-refcard.tex --- a/etc/refcards/pt-br-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/pt-br-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -63,7 +63,7 @@ \pdflayout=(0l) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed below this line. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/refcard.pdf Binary file etc/refcards/refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/refcard.tex --- a/etc/refcards/refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -64,7 +64,7 @@ % Nothing else needs to be changed below this line. \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % copyright year +\def\year{2010} % copyright year \def\shortcopyrightnotice{\vskip 1ex plus 2 fill \centerline{\small \copyright\ \year\ Free Software Foundation, Inc. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/ru-refcard.pdf Binary file etc/refcards/ru-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/ru-refcard.tex --- a/etc/refcards/ru-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/ru-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -23,15 +23,15 @@ \setlength{\ColThreeWidth}{25mm} \newcommand{\versionemacs}[0]{23} % version of Emacs this is for -\newcommand{\year}[0]{2009} % copyright year +\newcommand{\cyear}[0]{2010} % copyright year \newcommand\shortcopyrightnotice[0]{\vskip 1ex plus 2 fill - \centerline{\footnotesize \copyright\ \year\ Free Software Foundation, Inc. + \centerline{\footnotesize \copyright\ \cyear\ Free Software Foundation, Inc. Permissions on back.}} \newcommand\copyrightnotice[0]{ \vskip 1ex plus 2 fill\begingroup\footnotesize -\centerline{Copyright \copyright\ \year\ Free Software Foundation, Inc.} +\centerline{Copyright \copyright\ \cyear\ Free Software Foundation, Inc.} \centerline{For GNU Emacs version \versionemacs} \centerline{Designed by Stephen Gildea} \centerline{ Alex Ott } diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/sk-dired-ref.pdf Binary file etc/refcards/sk-dired-ref.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/sk-dired-ref.tex --- a/etc/refcards/sk-dired-ref.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/sk-dired-ref.tex Sat Mar 06 05:16:27 2010 -0500 @@ -44,7 +44,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/sk-refcard.pdf Binary file etc/refcards/sk-refcard.pdf has changed diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/sk-refcard.tex --- a/etc/refcards/sk-refcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/sk-refcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -61,7 +61,7 @@ \pdflayout=(0) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/sk-survival.tex --- a/etc/refcards/sk-survival.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/sk-survival.tex Sat Mar 06 05:16:27 2010 -0500 @@ -57,7 +57,7 @@ \shyph \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/survival.tex --- a/etc/refcards/survival.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/survival.tex Sat Mar 06 05:16:27 2010 -0500 @@ -46,7 +46,7 @@ \pdflayout=(1) \def\versionemacs{23} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\copyrightnotice{\penalty-1\vfill \vbox{\smallfont\baselineskip=0.8\baselineskip\raggedcenter diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/vipcard.tex --- a/etc/refcards/vipcard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/vipcard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -51,7 +51,7 @@ \pdflayout=(1) \def\versionemacs{18} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\versionvip{3.5} % Nothing else needs to be changed. diff -r 59df2de8b31d -r 772da445ced7 etc/refcards/viperCard.tex --- a/etc/refcards/viperCard.tex Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/refcards/viperCard.tex Sat Mar 06 05:16:27 2010 -0500 @@ -54,7 +54,7 @@ \pdflayout=(1) \def\versionemacs{21} % version of Emacs this is for -\def\year{2009} % latest copyright year +\def\year{2010} % latest copyright year \def\versionxemacs{20} % version of XEmacs this is for \def\versionviper{3.0} % version of Viper this is for diff -r 59df2de8b31d -r 772da445ced7 etc/srecode/default.srt --- a/etc/srecode/default.srt Sat Feb 27 07:43:30 2010 -0500 +++ b/etc/srecode/default.srt Sat Mar 06 05:16:27 2010 -0500 @@ -25,8 +25,8 @@ set COPYRIGHT "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as -published by the Free Software Foundation; either version 2, or (at -your option) any later version. +published by the Free Software Foundation, either version 3 of the +License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -34,9 +34,7 @@ General Public License for more details. You should have received a copy of the GNU General Public License -along with this program; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -Boston, MA 02110-1301, USA." +along with this program. If not, see http://www.gnu.org/licenses/." set DOLLAR "$" diff -r 59df2de8b31d -r 772da445ced7 lisp/ChangeLog --- a/lisp/ChangeLog Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/ChangeLog Sat Mar 06 05:16:27 2010 -0500 @@ -1,7 +1,114 @@ +2010-03-06 Stefan Monnier + + * vc-git.el: Re-flow to fit into 80 columns. + (vc-git-after-dir-status-stage, vc-git-dir-status-goto-stage): + Remove spurious `quote' element in each case alternative. + (vc-git-show-log-entry): Use prog1. + (vc-git-after-dir-status-stage): Remove unused var `remaining'. + +2010-03-06 Glenn Morris + + * cedet/semantic/grammar.el (semantic-grammar-header-template): + Update template copyright to GPLv3+. + +2010-03-05 Stefan Monnier + + * man.el (Man-files-regexp): Tighten up the regexp (bug#5686). + +2010-03-03 Chong Yidong + + * macros.el (insert-kbd-macro): Look up keyboard macro using the + definition, not the name (Bug#5481). + +2010-03-03 Štěpán Němec (tiny change) + + * subr.el (momentary-string-display): Don't overwrite the MESSAGE + argument with a local variable. (Bug#5670) + +2010-03-02 Juri Linkov + + * info.el (Info-index-next): Decrement line number by 2. (Bug#5652) + +2010-03-02 Michael Albinus + + * net/tramp.el (tramp-do-copy-or-rename-file-out-of-band): Fix an + error when FILENAME and NEWNAME are existing remote directories. + + * net/tramp-compat.el (tramp-compat-make-temp-file): Add optional + parameter DIR-FLAG. + +2010-03-02 Glenn Morris + + * calendar/cal-hebrew.el (holiday-hebrew-passover): Fix date + of Yom HaAtzma'ut when it falls on a Monday (rule changed in 2004). + +2010-03-01 Alan Mackenzie + + * progmodes/cc-engine.el (c-remove-stale-state-cache): + Correct previous patch. + +2010-03-01 Kenichi Handa + + * language/burmese.el (burmese-composable-pattern): Rename from + myanmar-composable-pattern. + + * international/characters.el (script-list): + * international/fontset.el (script-representative-chars): + Change myanmar to burmese. + (otf-script-alist): Likewise. + (setup-default-fontset): Likewise. Re-fix :otf spec. + +2010-03-01 Alan Mackenzie + + * cc-engine.el (c-remove-stale-state-cache): Take account of when + `good-pos' is in the same macro as `here'. Fixes bug 5649. + +2010-02-28 Katsumi Yamaoka + + * menu-bar.el (menu-bar-manuals-menu): Fix typo. + +2010-02-28 Jan Djärv + + * scroll-bar.el (scroll-bar-drag-1): Add save-excursion, bug #5654. + +2010-02-28 Michael Albinus + + * net/tramp.el (tramp-handle-write-region): START can be a string. + Take care in the checks. Reported by Dan Davison + . + +2010-02-28 Michael Albinus + + * net/dbus.el (dbus-introspect, dbus-get-property) + (dbus-set-property, dbus-get-all-properties): Use + `dbus-call-method' when noninteractive. (Bug#5645) + +2010-02-28 Chong Yidong + + * textmodes/reftex-toc.el (reftex-toc-promote-prepare): + * emacs-lisp/elint.el (elint-add-required-env): + * cedet/semantic/db-find.el + (semanticdb-find-translate-path-brutish-default): + * cedet/ede/make.el (ede-make-check-version): + * calendar/icalendar.el (icalendar--add-diary-entry): + * calc/calcalg2.el (math-tracing-integral): + * files.el (recover-session-finish): Use with-current-buffer + instead of save-excursion. + +2010-02-27 Stefan Monnier + + Fix in-buffer completion when after-change-functions modify the buffer. + * minibuffer.el (completion--replace): New function. + (completion--do-completion): Use it and use relative movement. + +2010-02-27 Chong Yidong + + * international/fontset.el (setup-default-fontset): Fix :otf spec. + 2010-02-27 Jeremy Whitlock (tiny change) - * progmodes/python.el (python-pdbtrack-stack-entry-regexp): Allow - the characters _<> in the stack entry (Bug#5653). + * progmodes/python.el (python-pdbtrack-stack-entry-regexp): + Allow the characters _<> in the stack entry (Bug#5653). 2010-02-26 Kenichi Handa diff -r 59df2de8b31d -r 772da445ced7 lisp/calc/calcalg2.el --- a/lisp/calc/calcalg2.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/calc/calcalg2.el Sat Mar 06 05:16:27 2010 -0500 @@ -670,8 +670,8 @@ (defmacro math-tracing-integral (&rest parts) (list 'and 'trace-buffer - (list 'save-excursion - '(set-buffer trace-buffer) + (list 'with-current-buffer + 'trace-buffer '(goto-char (point-max)) (list 'and '(bolp) diff -r 59df2de8b31d -r 772da445ced7 lisp/calendar/cal-hebrew.el --- a/lisp/calendar/cal-hebrew.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/calendar/cal-hebrew.el Sat Mar 06 05:16:27 2010 -0500 @@ -505,7 +505,9 @@ (+ abs-p 18) (if (= (% abs-p 7) 6) (+ abs-p 19) - (+ abs-p 20)))) + (if (= (% abs-p 7) 2) + (+ abs-p 21) + (+ abs-p 20))))) "Yom HaAtzma'ut") (list (calendar-gregorian-from-absolute (+ abs-p 33)) "Lag BaOmer") diff -r 59df2de8b31d -r 772da445ced7 lisp/calendar/icalendar.el --- a/lisp/calendar/icalendar.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/calendar/icalendar.el Sat Mar 06 05:16:27 2010 -0500 @@ -2246,8 +2246,7 @@ 'make-diary-entry) string non-marking diary-file))) ;; Würgaround to remove the trailing blank char - (save-excursion - (set-buffer (find-file diary-file)) + (with-current-buffer (find-file diary-file) (goto-char (point-max)) (if (= (char-before) ? ) (delete-char -1))) diff -r 59df2de8b31d -r 772da445ced7 lisp/cedet/ede/make.el --- a/lisp/cedet/ede/make.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/cedet/ede/make.el Sat Mar 06 05:16:27 2010 -0500 @@ -76,9 +76,8 @@ (rev nil) (ans nil) ) - (save-excursion + (with-current-buffer b ;; Setup, and execute make. - (set-buffer b) (setq default-directory cd) (erase-buffer) (call-process ede-make-command nil b nil diff -r 59df2de8b31d -r 772da445ced7 lisp/cedet/semantic/db-find.el --- a/lisp/cedet/semantic/db-find.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/cedet/semantic/db-find.el Sat Mar 06 05:16:27 2010 -0500 @@ -326,9 +326,8 @@ (cond ((null path) semanticdb-current-database) ((semanticdb-table-p path) (oref path parent-db)) (t (let ((tt (semantic-something-to-tag-table path))) - (save-excursion - ;; @todo - What does this DO ??!?! - (set-buffer (semantic-tag-buffer (car tt))) + ;; @todo - What does this DO ??!?! + (with-current-buffer (semantic-tag-buffer (car tt)) semanticdb-current-database)))))) (apply #'nconc diff -r 59df2de8b31d -r 772da445ced7 lisp/cedet/semantic/grammar.el --- a/lisp/cedet/semantic/grammar.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/cedet/semantic/grammar.el Sat Mar 06 05:16:27 2010 -0500 @@ -573,21 +573,19 @@ ;; X-RCS: " vcid " ;; This file is not part of GNU Emacs. -;; + ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as -;; published by the Free Software Foundation; either version 2, or (at -;; your option) any later version. -;; +;; published by the Free Software Foundation, either version 3 of +;; the License, or (at your option) any later version. + ;; This software is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ;; General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with this program. If not, see . ;;; Commentary: ;; diff -r 59df2de8b31d -r 772da445ced7 lisp/emacs-lisp/elint.el --- a/lisp/emacs-lisp/elint.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/emacs-lisp/elint.el Sat Mar 06 05:16:27 2010 -0500 @@ -505,11 +505,10 @@ ;; (Messes up the "Initializing elint..." message.) ;;; (message nil) (if lib - (save-excursion + (with-current-buffer (find-file-noselect lib) ;; FIXME this doesn't use a temp buffer, because it ;; stores the result in buffer-local variables so that ;; it can be reused. - (set-buffer (find-file-noselect lib)) (elint-update-env) (setq env (elint-env-add-env env elint-buffer-env))) ;;; (with-temp-buffer diff -r 59df2de8b31d -r 772da445ced7 lisp/files.el --- a/lisp/files.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/files.el Sat Mar 06 05:16:27 2010 -0500 @@ -5034,9 +5034,8 @@ (dired-unmark 1) (dired-do-flagged-delete t) (unwind-protect - (save-excursion + (with-current-buffer buffer ;; Read in the auto-save-list file. - (set-buffer buffer) (erase-buffer) (insert-file-contents file) ;; Loop thru the text of that file diff -r 59df2de8b31d -r 772da445ced7 lisp/info.el --- a/lisp/info.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/info.el Sat Mar 06 05:16:27 2010 -0500 @@ -3062,7 +3062,9 @@ num (1- num))) (Info-goto-node (nth 1 (car Info-index-alternatives))) (if (> (nth 3 (car Info-index-alternatives)) 0) - (forward-line (1- (nth 3 (car Info-index-alternatives)))) + ;; Forward 2 lines less because `Info-find-node-2' initially + ;; puts point to the 2nd line. + (forward-line (- (nth 3 (car Info-index-alternatives)) 2)) (forward-line 3) ; don't search in headers (let ((name (car (car Info-index-alternatives)))) (Info-find-index-name name))) diff -r 59df2de8b31d -r 772da445ced7 lisp/international/characters.el --- a/lisp/international/characters.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/international/characters.el Sat Mar 06 05:16:27 2010 -0500 @@ -1124,7 +1124,7 @@ (#x0E00 #x0E5F thai) (#x0E80 #x0EDF lao) (#x0F00 #x0FFF tibetan) - (#x1000 #x109F myanmar) + (#x1000 #x109F burmese) (#x10A0 #x10FF georgian) (#x1100 #x11FF hangul) (#x1200 #x139F ethiopic) @@ -1151,7 +1151,7 @@ (#x3400 #x9FAF han) (#xA000 #xA4CF yi) (#xAA00 #xAA5F cham) - (#xAA60 #xAA7B myanmar) + (#xAA60 #xAA7B burmese) (#xAA80 #xAADF tai-viet) (#xAC00 #xD7AF hangul) (#xF900 #xFAFF han) diff -r 59df2de8b31d -r 772da445ced7 lisp/international/fontset.el --- a/lisp/international/fontset.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/international/fontset.el Sat Mar 06 05:16:27 2010 -0500 @@ -169,7 +169,7 @@ (thai #xE17) (lao #xEA5) (tibetan #xF40) - (myanmar #x1000) + (burmese #x1000) (georgian #x10D3) (ethiopic #x1208) (cherokee #x13B6) @@ -260,7 +260,7 @@ (math . mathematical) (mong . mongolian) (musc . musical-symbol) - (mymr . myanmar) + (mymr . burmese) (nko\ . nko) (ogam . ogham) (ital . old_italic) @@ -415,8 +415,8 @@ (sinhala ,(font-spec :registry "iso10646-1" :otf '(sinh nil (akhn)))) (malayalam ,(font-spec :registry "iso10646-1" :otf '(mlym nil (akhn)))) - (myanmar ,(font-spec :registry "iso10646-1" :otf '(mymr)) - ,(font-spec :registry "iso10646-1" :script 'myanmar)) + (burmese ,(font-spec :registry "iso10646-1" :otf '(mymr nil nil)) + ,(font-spec :registry "iso10646-1" :script 'burmese)) (lao ,(font-spec :registry "iso10646-1" :otf '(lao\ nil nil (mark))) ,(font-spec :registry "iso10646-1" :script 'lao) diff -r 59df2de8b31d -r 772da445ced7 lisp/language/burmese.el --- a/lisp/language/burmese.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/language/burmese.el Sat Mar 06 05:16:27 2010 -0500 @@ -36,7 +36,7 @@ (sample-text . "Burmese (မ္ရန္‌မာ) မင္‍ဂလာပာ") (documentation . t))) -(defvar myanmar-composable-pattern +(defvar burmese-composable-pattern (let ((table '(("K" . "[\u1004\u105A]\u103A\u1039") ; KINZI sequence ("C" . "[\u1000-\u102A\u103F\u1041-\u1049\u104E\u105A-\u105D\u1061\u1065-\u1066\u106E\u1071\u1075\u1081\u108E\uAA60-\uAA6F\uAA71-\uAA76]") ; consonant and vowel letter @@ -52,7 +52,7 @@ regexp t t)))) regexp)) -(let ((elt (list (vector myanmar-composable-pattern 0 'font-shape-gstring) +(let ((elt (list (vector burmese-composable-pattern 0 'font-shape-gstring) (vector "." 0 'font-shape-gstring)))) (set-char-table-range composition-function-table '(#x1000 . #x107F) elt) (set-char-table-range composition-function-table '(#xAA60 . #xAA7B) elt)) diff -r 59df2de8b31d -r 772da445ced7 lisp/macros.el --- a/lisp/macros.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/macros.el Sat Mar 06 05:16:27 2010 -0500 @@ -138,7 +138,8 @@ (prin1 definition (current-buffer)))) (insert ")\n") (if keys - (let ((keys (where-is-internal macroname '(keymap)))) + (let ((keys (where-is-internal (symbol-function macroname) + '(keymap)))) (while keys (insert "(global-set-key ") (prin1 (car keys) (current-buffer)) diff -r 59df2de8b31d -r 772da445ced7 lisp/man.el --- a/lisp/man.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/man.el Sat Mar 06 05:16:27 2010 -0500 @@ -283,7 +283,8 @@ "Regular expression for SYNOPSIS heading (or your equivalent). This regexp should not start with a `^' character.") -(defvar Man-files-regexp "FILES" +(defvar Man-files-regexp "FILES\\>" + ;; Add \> so as not to match mount(8)'s FILESYSTEM INDEPENDENT MOUNT OPTIONS. "Regular expression for FILES heading (or your equivalent). This regexp should not start with a `^' character.") diff -r 59df2de8b31d -r 772da445ced7 lisp/menu-bar.el --- a/lisp/menu-bar.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/menu-bar.el Sat Mar 06 05:16:27 2010 -0500 @@ -1500,7 +1500,7 @@ (define-key menu-bar-manuals-menu [emacs-lisp-reference] `(menu-item ,(purecopy "Emacs Lisp Reference") menu-bar-read-lispref :help ,(purecopy "Read the Emacs Lisp Reference manual"))) -(define-key menu-bar-manuals-menu [emac-lisp-intro] +(define-key menu-bar-manuals-menu [emacs-lisp-intro] `(menu-item ,(purecopy "Introduction to Emacs Lisp") menu-bar-read-lispintro :help ,(purecopy "Read the Introduction to Emacs Lisp Programming"))) diff -r 59df2de8b31d -r 772da445ced7 lisp/minibuffer.el --- a/lisp/minibuffer.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/minibuffer.el Sat Mar 06 05:16:27 2010 -0500 @@ -59,6 +59,8 @@ ;; - extend `boundaries' to provide various other meta-data about the ;; output of `all-completions': +;; - preferred sorting order when displayed in *Completions*. +;; - annotations/text-properties to add when displayed in *Completions*. ;; - quoting/unquoting (so we can complete files names with envvars ;; and backslashes, and all-completion can list names without ;; quoting backslashes and dollars). @@ -444,6 +446,17 @@ (if completions 2 0) (if exact 1 0))) +(defun completion--replace (beg end newtext) + "Replace the buffer text between BEG and END with NEWTEXT. +Moves point to the end of the new text." + ;; This should be in subr.el. + ;; You'd think this is trivial to do, but details matter if you want + ;; to keep markers "at the right place" and be robust in the face of + ;; after-change-functions that may themselves modify the buffer. + (goto-char beg) + (insert newtext) + (delete-region (point) (+ (point) (- end beg)))) + (defun completion--do-completion (&optional try-completion-function) "Do the completion and return a summary of what happened. M = completion was performed, the text was Modified. @@ -486,14 +499,12 @@ string nil nil t)))) (unchanged (eq t (compare-strings completion nil nil string nil nil nil)))) - (unless unchanged - - ;; Insert in minibuffer the chars we got. + (if unchanged (goto-char end) - (insert completion) - (delete-region beg end)) - ;; Move point. - (goto-char (+ beg comp-pos)) + ;; Insert in minibuffer the chars we got. + (completion--replace beg end completion)) + ;; Move point to its completion-mandated destination. + (forward-char (- comp-pos (length completion))) (if (not (or unchanged completed)) ;; The case of the string changed, but that's all. We're not sure @@ -1813,7 +1824,6 @@ (when completions (let* ((re (completion-pcm--pattern->regex pattern '(point))) (case-fold-search completion-ignore-case)) - ;; Remove base-size during mapcar, and add it back later. (mapcar (lambda (str) ;; Don't modify the string itself. diff -r 59df2de8b31d -r 772da445ced7 lisp/net/dbus.el --- a/lisp/net/dbus.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/net/dbus.el Sat Mar 06 05:16:27 2010 -0500 @@ -573,7 +573,8 @@ ;; is used, because the handler can be registered in our Emacs ;; instance; caller an callee would block each other. (dbus-ignore-errors - (dbus-call-method-non-blocking + (funcall + (if noninteractive 'dbus-call-method 'dbus-call-method-non-blocking) bus service path dbus-interface-introspectable "Introspect"))) (defun dbus-introspect-xml (bus service path) @@ -831,7 +832,8 @@ (dbus-ignore-errors ;; "Get" returns a variant, so we must use the `car'. (car - (dbus-call-method-non-blocking + (funcall + (if noninteractive 'dbus-call-method 'dbus-call-method-non-blocking) bus service path dbus-interface-properties "Get" :timeout 500 interface property)))) @@ -842,7 +844,8 @@ returned." (dbus-ignore-errors ;; "Set" requires a variant. - (dbus-call-method-non-blocking + (funcall + (if noninteractive 'dbus-call-method 'dbus-call-method-non-blocking) bus service path dbus-interface-properties "Set" :timeout 500 interface property (list :variant value)) ;; Return VALUE. @@ -857,7 +860,10 @@ ;; "GetAll" returns "a{sv}". (let (result) (dolist (dict - (dbus-call-method-non-blocking + (funcall + (if noninteractive + 'dbus-call-method + 'dbus-call-method-non-blocking) bus service path dbus-interface-properties "GetAll" :timeout 500 interface) result) diff -r 59df2de8b31d -r 772da445ced7 lisp/net/tramp-compat.el --- a/lisp/net/tramp-compat.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/net/tramp-compat.el Sat Mar 06 05:16:27 2010 -0500 @@ -215,7 +215,7 @@ ;; has been introduced with Emacs 22. We try it, if it fails, we fall ;; back to `make-temp-name', creating the temporary file immediately ;; in order to avoid a security hole. -(defsubst tramp-compat-make-temp-file (filename) +(defsubst tramp-compat-make-temp-file (filename &optional dir-flag) "Create a temporary file (compat function). Add the extension of FILENAME, if existing." (let* (file-name-handler-alist @@ -226,21 +226,24 @@ result) (condition-case nil (setq result - (funcall (symbol-function 'make-temp-file) prefix nil extension)) + (funcall + (symbol-function 'make-temp-file) prefix dir-flag extension)) (error ;; We use our own implementation, taken from files.el. (while (condition-case () (progn (setq result (concat (make-temp-name prefix) extension)) - (write-region - "" nil result nil 'silent nil - ;; 7th parameter is MUSTBENEW in Emacs, and - ;; CODING-SYSTEM in XEmacs. It is not a security - ;; hole in XEmacs if we cannot use this parameter, - ;; because XEmacs uses a user-specific subdirectory - ;; with 0700 permissions. - (when (not (featurep 'xemacs)) 'excl)) + (if dir-flag + (make-directory result) + (write-region + "" nil result nil 'silent nil + ;; 7th parameter is MUSTBENEW in Emacs, and + ;; CODING-SYSTEM in XEmacs. It is not a security + ;; hole in XEmacs if we cannot use this parameter, + ;; because XEmacs uses a user-specific + ;; subdirectory with 0700 permissions. + (when (not (featurep 'xemacs)) 'excl))) nil) (file-already-exists t)) ;; The file was somehow created by someone else between diff -r 59df2de8b31d -r 772da445ced7 lisp/net/tramp.el --- a/lisp/net/tramp.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/net/tramp.el Sat Mar 06 05:16:27 2010 -0500 @@ -3798,13 +3798,12 @@ ;; Both are Tramp files. We shall optimize it, when the ;; methods for filename and newname are the same. - (let ((tmpfile - (if (file-regular-p filename) - (tramp-compat-make-temp-file localname) - (make-temp-name - (expand-file-name - tramp-temp-name-prefix - (tramp-compat-temporary-file-directory)))))) + (let* ((dir-flag (file-directory-p filename)) + (tmpfile (tramp-compat-make-temp-file localname dir-flag))) + (if dir-flag + (setq tmpfile + (expand-file-name + (file-name-nondirectory newname) tmpfile))) (unwind-protect (progn (tramp-do-copy-or-rename-file-out-of-band @@ -3813,9 +3812,10 @@ 'rename tmpfile newname keep-date)) ;; Save exit. (condition-case nil - (if (file-regular-p tmpfile) - (delete-file tmpfile) - (delete-directory tmpfile 'recursive)) + (if dir-flag + (delete-directory + (expand-file-name ".." tmpfile) 'recursive) + (delete-file tmpfile)) (error)))) ;; Expand hops. Might be necessary for gateway methods. @@ -5045,11 +5045,12 @@ ;; encoding function, then that is used for encoding the ;; contents of the tmp file. (cond - ;; `rename-file' handles direct copy and out-of-band methods. + ;; `copy-file' handles direct copy and out-of-band methods. ((or (tramp-local-host-p v) (tramp-method-out-of-band-p - v (- (or end (point-max)) (or start (point-min))))) - (if (and (= (or end (point-max)) (point-max)) + v (nth 7 (file-attributes tmpfile)))) + (if (and (not (stringp start)) + (= (or end (point-max)) (point-max)) (= (or start (point-min)) (point-min)) (tramp-get-method-parameter method 'tramp-copy-keep-tmpfile)) diff -r 59df2de8b31d -r 772da445ced7 lisp/progmodes/cc-engine.el --- a/lisp/progmodes/cc-engine.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/progmodes/cc-engine.el Sat Mar 06 05:16:27 2010 -0500 @@ -2591,7 +2591,7 @@ (save-restriction (narrow-to-region 1 (point-max)) (save-excursion - (let* ((in-macro-start ; point-max or beginning of macro containing it + (let* ((in-macro-start ; start of macro containing (point-max) or nil. (save-excursion (goto-char (point-max)) (and (c-beginning-of-macro) @@ -2641,7 +2641,9 @@ ;; (car c-state-cache). There can be no open parens/braces/brackets ;; between `good-pos'/`good-pos-actual-macro-start' and (point-max), ;; due to the interface spec to this function. - (setq pos (if good-pos-actual-macro-end + (setq pos (if (and good-pos-actual-macro-end + (not (eq good-pos-actual-macro-start + in-macro-start))) (1+ good-pos-actual-macro-end) ; get outside the macro as ; marked by a `category' text property. good-pos)) diff -r 59df2de8b31d -r 772da445ced7 lisp/progmodes/sh-script.el --- a/lisp/progmodes/sh-script.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/progmodes/sh-script.el Sat Mar 06 05:16:27 2010 -0500 @@ -1186,7 +1186,7 @@ "Variables controlling indentation in shell scripts. Note: customizing these variables will not affect existing buffers if -`sh-make-vars-local' is no-nil. See the documentation for +`sh-make-vars-local' is non-nil. See the documentation for variable `sh-make-vars-local', command `sh-make-vars-local' and command `sh-reset-indent-vars-to-global-values'." :group 'sh-script) diff -r 59df2de8b31d -r 772da445ced7 lisp/scroll-bar.el --- a/lisp/scroll-bar.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/scroll-bar.el Sat Mar 06 05:16:27 2010 -0500 @@ -210,13 +210,14 @@ (let* ((start-position (event-start event)) (window (nth 0 start-position)) (portion-whole (nth 2 start-position))) - (with-current-buffer (window-buffer window) - ;; Calculate position relative to the accessible part of the buffer. - (goto-char (+ (point-min) - (scroll-bar-scale portion-whole - (- (point-max) (point-min))))) - (vertical-motion 0 window) - (set-window-start window (point))))) + (save-excursion + (with-current-buffer (window-buffer window) + ;; Calculate position relative to the accessible part of the buffer. + (goto-char (+ (point-min) + (scroll-bar-scale portion-whole + (- (point-max) (point-min))))) + (vertical-motion 0 window) + (set-window-start window (point)))))) (defun scroll-bar-drag (event) "Scroll the window by dragging the scroll bar slider. diff -r 59df2de8b31d -r 772da445ced7 lisp/subr.el --- a/lisp/subr.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/subr.el Sat Mar 06 05:16:27 2010 -0500 @@ -2196,15 +2196,15 @@ If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there." (or exit-char (setq exit-char ?\s)) (let ((ol (make-overlay pos pos)) - (message (copy-sequence string))) + (str (copy-sequence string))) (unwind-protect (progn (save-excursion - (overlay-put ol 'after-string message) + (overlay-put ol 'after-string str) (goto-char pos) ;; To avoid trouble with out-of-bounds position (setq pos (point)) - ;; If the message end is off screen, recenter now. + ;; If the string end is off screen, recenter now. (if (<= (window-end nil t) pos) (recenter (/ (window-height) 2)))) (message (or message "Type %s to continue editing.") diff -r 59df2de8b31d -r 772da445ced7 lisp/textmodes/reftex-toc.el --- a/lisp/textmodes/reftex-toc.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/textmodes/reftex-toc.el Sat Mar 06 05:16:27 2010 -0500 @@ -665,9 +665,8 @@ (if (and (markerp marker) (marker-buffer marker)) ;; Buffer is still live and we have the marker. (progn - (save-excursion + (with-current-buffer (marker-buffer marker) ;; Goto the buffer and check of section is unchanged - (set-buffer (marker-buffer marker)) (goto-char (marker-position marker)) (if (looking-at (regexp-quote literal)) ;; OK, get the makro name diff -r 59df2de8b31d -r 772da445ced7 lisp/vc-git.el --- a/lisp/vc-git.el Sat Feb 27 07:43:30 2010 -0500 +++ b/lisp/vc-git.el Sat Mar 06 05:16:27 2010 -0500 @@ -69,8 +69,8 @@ ;; * revert (file &optional contents-done) OK ;; - rollback (files) COULD BE SUPPORTED ;; - merge (file rev1 rev2) It would be possible to merge -;; changes into a single file, but when -;; committing they wouldn't +;; changes into a single file, but +;; when committing they wouldn't ;; be identified as a merge ;; by git, so it's probably ;; not a good idea. @@ -130,7 +130,7 @@ ;;;###autoload (defun vc-git-registered (file) ;;;###autoload "Return non-nil if FILE is registered with git." -;;;###autoload (if (vc-find-root file ".git") ; short cut +;;;###autoload (if (vc-find-root file ".git") ; Short cut. ;;;###autoload (progn ;;;###autoload (load "vc-git") ;;;###autoload (vc-git-registered file)))) @@ -149,9 +149,11 @@ (str (ignore-errors (cd dir) (vc-git--out-ok "ls-files" "-c" "-z" "--" name) - ;; if result is empty, use ls-tree to check for deleted file + ;; If result is empty, use ls-tree to check for deleted + ;; file. (when (eq (point-min) (point-max)) - (vc-git--out-ok "ls-tree" "--name-only" "-z" "HEAD" "--" name)) + (vc-git--out-ok "ls-tree" "--name-only" "-z" "HEAD" + "--" name)) (buffer-string)))) (and str (> (length str) (length name)) @@ -173,7 +175,8 @@ (if (not (vc-git-registered file)) 'unregistered (vc-git--call nil "add" "--refresh" "--" (file-relative-name file)) - (let ((diff (vc-git--run-command-string file "diff-index" "-z" "HEAD" "--"))) + (let ((diff (vc-git--run-command-string + file "diff-index" "-z" "HEAD" "--"))) (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0" diff)) (vc-git--state-code (match-string 1 diff)) @@ -206,11 +209,12 @@ (defstruct (vc-git-extra-fileinfo (:copier nil) - (:constructor vc-git-create-extra-fileinfo (old-perm new-perm &optional rename-state orig-name)) + (:constructor vc-git-create-extra-fileinfo + (old-perm new-perm &optional rename-state orig-name)) (:conc-name vc-git-extra-fileinfo->)) - old-perm new-perm ;; permission flags - rename-state ;; rename or copy state - orig-name) ;; original name for renames or copies + old-perm new-perm ;; Permission flags. + rename-state ;; Rename or copy state. + orig-name) ;; Original name for renames or copies. (defun vc-git-escape-file-name (name) "Escape a file name if necessary." @@ -232,23 +236,23 @@ (let* ((old-type (lsh (or old-perm 0) -9)) (new-type (lsh (or new-perm 0) -9)) (str (case new-type - (?\100 ;; file + (?\100 ;; File. (case old-type (?\100 nil) (?\120 " (type change symlink -> file)") (?\160 " (type change subproject -> file)"))) - (?\120 ;; symlink + (?\120 ;; Symlink. (case old-type (?\100 " (type change file -> symlink)") (?\160 " (type change subproject -> symlink)") (t " (symlink)"))) - (?\160 ;; subproject + (?\160 ;; Subproject. (case old-type (?\100 " (type change file -> subproject)") (?\120 " (type change symlink -> subproject)") (t " (subproject)"))) - (?\110 nil) ;; directory (internal, not a real git state) - (?\000 ;; deleted or unknown + (?\110 nil) ;; Directory (internal, not a real git state). + (?\000 ;; Deleted or unknown. (case old-type (?\120 " (symlink)") (?\160 " (subproject)"))) @@ -258,7 +262,8 @@ (t "")))) (defun vc-git-rename-as-string (state extra) - "Return a string describing the copy or rename associated with INFO, or an empty string if none." + "Return a string describing the copy or rename associated with INFO, +or an empty string if none." (let ((rename-state (when extra (vc-git-extra-fileinfo->rename-state extra)))) (if rename-state @@ -267,8 +272,10 @@ (if (eq rename-state 'copy) "copied from " (if (eq state 'added) "renamed from " "renamed to ")) - (vc-git-escape-file-name (vc-git-extra-fileinfo->orig-name extra)) - ")") 'face 'font-lock-comment-face) + (vc-git-escape-file-name + (vc-git-extra-fileinfo->orig-name extra)) + ")") + 'face 'font-lock-comment-face) ""))) (defun vc-git-permissions-as-string (old-perm new-perm) @@ -302,7 +309,8 @@ " " (vc-git-permissions-as-string old-perm new-perm) " " (propertize (vc-git-escape-file-name (vc-dir-fileinfo->name info)) - 'face (if isdir 'font-lock-comment-delimiter-face 'font-lock-function-name-face) + 'face (if isdir 'font-lock-comment-delimiter-face + 'font-lock-function-name-face) 'help-echo (if isdir "Directory\nVC operations can be applied to it\nmouse-3: Pop-up menu" @@ -314,32 +322,39 @@ (defun vc-git-after-dir-status-stage (stage files update-function) "Process sentinel for the various dir-status stages." - (let (remaining next-stage result) + (let (next-stage result) (goto-char (point-min)) (case stage - ('update-index + (update-index (setq next-stage (if (vc-git--empty-db-p) 'ls-files-added (if files 'ls-files-up-to-date 'diff-index)))) - ('ls-files-added + (ls-files-added (setq next-stage 'ls-files-unknown) (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) (let ((new-perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm)) result)))) - ('ls-files-up-to-date + (push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm)) + result)))) + (ls-files-up-to-date (setq next-stage 'diff-index) (while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t) (let ((perm (string-to-number (match-string 1) 8)) (name (match-string 2))) - (push (list name 'up-to-date (vc-git-create-extra-fileinfo perm perm)) result)))) - ('ls-files-unknown + (push (list name 'up-to-date + (vc-git-create-extra-fileinfo perm perm)) + result)))) + (ls-files-unknown (when files (setq next-stage 'ls-files-ignored)) (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1) - (push (list (match-string 1) 'unregistered (vc-git-create-extra-fileinfo 0 0)) result))) - ('ls-files-ignored + (push (list (match-string 1) 'unregistered + (vc-git-create-extra-fileinfo 0 0)) + result))) + (ls-files-ignored (while (re-search-forward "\\([^\0]*?\\)\0" nil t 1) - (push (list (match-string 1) 'ignored (vc-git-create-extra-fileinfo 0 0)) result))) - ('diff-index + (push (list (match-string 1) 'ignored + (vc-git-create-extra-fileinfo 0 0)) + result))) + (diff-index (setq next-stage 'ls-files-unknown) (while (re-search-forward ":\\([0-7]\\{6\\}\\) \\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\(\\([ADMUT]\\)\0\\([^\0]+\\)\\|\\([CR]\\)[0-9]*\0\\([^\0]+\\)\0\\([^\0]+\\)\\)\0" @@ -349,41 +364,60 @@ (state (or (match-string 4) (match-string 6))) (name (or (match-string 5) (match-string 7))) (new-name (match-string 8))) - (if new-name ; copy or rename + (if new-name ; Copy or rename. (if (eq ?C (string-to-char state)) - (push (list new-name 'added (vc-git-create-extra-fileinfo old-perm new-perm 'copy name)) result) - (push (list name 'removed (vc-git-create-extra-fileinfo 0 0 'rename new-name)) result) - (push (list new-name 'added (vc-git-create-extra-fileinfo old-perm new-perm 'rename name)) result)) - (push (list name (vc-git--state-code state) (vc-git-create-extra-fileinfo old-perm new-perm)) result)))))) + (push (list new-name 'added + (vc-git-create-extra-fileinfo old-perm new-perm + 'copy name)) + result) + (push (list name 'removed + (vc-git-create-extra-fileinfo 0 0 + 'rename new-name)) + result) + (push (list new-name 'added + (vc-git-create-extra-fileinfo old-perm new-perm + 'rename name)) + result)) + (push (list name (vc-git--state-code state) + (vc-git-create-extra-fileinfo old-perm new-perm)) + result)))))) (when result (setq result (nreverse result)) (when files (dolist (entry result) (setq files (delete (car entry) files))) (unless files (setq next-stage nil)))) - (when (or result (not next-stage)) (funcall update-function result next-stage)) - (when next-stage (vc-git-dir-status-goto-stage next-stage files update-function)))) + (when (or result (not next-stage)) + (funcall update-function result next-stage)) + (when next-stage + (vc-git-dir-status-goto-stage next-stage files update-function)))) (defun vc-git-dir-status-goto-stage (stage files update-function) (erase-buffer) (case stage - ('update-index + (update-index (if files (vc-git-command (current-buffer) 'async files "add" "--refresh" "--") - (vc-git-command (current-buffer) 'async nil "update-index" "--refresh"))) - ('ls-files-added - (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-c" "-s" "--")) - ('ls-files-up-to-date - (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-c" "-s" "--")) - ('ls-files-unknown - (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o" - "--directory" "--no-empty-directory" "--exclude-standard" "--")) - ('ls-files-ignored - (vc-git-command (current-buffer) 'async files "ls-files" "-z" "-o" "-i" - "--directory" "--no-empty-directory" "--exclude-standard" "--")) - ('diff-index - (vc-git-command (current-buffer) 'async files "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) + (vc-git-command (current-buffer) 'async nil + "update-index" "--refresh"))) + (ls-files-added + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (ls-files-up-to-date + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-c" "-s" "--")) + (ls-files-unknown + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-o" "--directory" + "--no-empty-directory" "--exclude-standard" "--")) + (ls-files-ignored + (vc-git-command (current-buffer) 'async files + "ls-files" "-z" "-o" "-i" "--directory" + "--no-empty-directory" "--exclude-standard" "--")) + (diff-index + (vc-git-command (current-buffer) 'async files + "diff-index" "--relative" "-z" "-M" "HEAD" "--"))) (vc-exec-after - `(vc-git-after-dir-status-stage (quote ,stage) (quote ,files) (quote ,update-function)))) + `(vc-git-after-dir-status-stage ',stage ',files ',update-function))) (defun vc-git-dir-status (dir update-function) "Return a list of (FILE STATE EXTRA) entries for DIR." @@ -439,14 +473,16 @@ (setq remote (with-output-to-string (with-current-buffer standard-output - (vc-git--out-ok "config" (concat "branch." branch ".remote"))))) + (vc-git--out-ok "config" + (concat "branch." branch ".remote"))))) (when (string-match "\\([^\n]+\\)" remote) (setq remote (match-string 1 remote))) (when remote (setq remote-url (with-output-to-string (with-current-buffer standard-output - (vc-git--out-ok "config" (concat "remote." remote ".url")))))) + (vc-git--out-ok "config" + (concat "remote." remote ".url")))))) (when (string-match "\\([^\n]+\\)" remote-url) (setq remote-url (match-string 1 remote-url)))) (setq branch "not (detached HEAD)")) @@ -550,8 +586,8 @@ (append '("log" "--no-color") (when shortlog - '("--graph" "--decorate" - "--date=short" "--pretty=format:%d%h %ad %s" "--abbrev-commit")) + '("--graph" "--decorate" "--date=short" + "--pretty=format:%d%h %ad %s" "--abbrev-commit")) (when limit (list "-n" (format "%s" limit))) (when start-revision (list start-revision)) '("--"))))))) @@ -565,7 +601,7 @@ (defvar vc-short-log) (define-derived-mode vc-git-log-view-mode log-view-mode "Git-Log-View" - (require 'add-log) ;; we need the faces add-log + (require 'add-log) ;; We need the faces add-log. ;; Don't have file markers, so use impossible regexp. (set (make-local-variable 'log-view-file-re) "\\`a\\`") (set (make-local-variable 'log-view-per-file-logs) nil) @@ -610,17 +646,16 @@ REVISION may have the form BRANCH, BRANCH~N, or BRANCH^ (where \"^\" can be repeated)." (goto-char (point-min)) - (let (found) - (when revision - (setq found - (search-forward (format "\ncommit %s" revision) nil t - (cond ((string-match "~\\([0-9]\\)$" revision) - (1+ (string-to-number (match-string 1 revision)))) - ((string-match "\\^+$" revision) - (1+ (length (match-string 0 revision)))) - (t nil))))) - (beginning-of-line) - found)) + (prog1 + (when revision + (search-forward + (format "\ncommit %s" revision) nil t + (cond ((string-match "~\\([0-9]\\)\\'" revision) + (1+ (string-to-number (match-string 1 revision)))) + ((string-match "\\^+\\'" revision) + (1+ (length (match-string 0 revision)))) + (t nil)))) + (beginning-of-line))) (defun vc-git-diff (files &optional rev1 rev2 buffer) "Get a difference report using Git between two revisions of FILES." @@ -948,7 +983,8 @@ (goto-char (point-min)) (= (forward-line 2) 1) (bolp) - (buffer-substring-no-properties (point-min) (1- (point-max))))))) + (buffer-substring-no-properties (point-min) + (1- (point-max))))))) (and name (not (string= name "undefined")) name)))) (provide 'vc-git) diff -r 59df2de8b31d -r 772da445ced7 src/ChangeLog --- a/src/ChangeLog Sat Feb 27 07:43:30 2010 -0500 +++ b/src/ChangeLog Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,47 @@ +2010-03-05 Stefan Monnier + + Make it possible to C-g in a tight bytecode loop again (bug#5680). + * lisp.h (ELSE_PENDING_SIGNALS): New macro. + (QUIT): Use it to consolidate code and remove redundancy. + * bytecode.c (BYTE_CODE_QUIT): Use it as well. + + * regex.c (regex_compile): Setup gl_state as well. + + * syntax.c (skip_chars): Setup gl_state (bug#3823). + (in_classes): Use CONSP before XCAR/XCDR. + +2010-03-03 Chong Yidong + + * keymap.c (Fwhere_is_internal): Use Fequal to compare + definitions, so that keyboard macros are correctly handled + (Bug#5481). + +2010-03-02 Eli Zaretskii + + * coding.c (decode_coding_emacs_mule): Fixup pointers to buffer + text that could be relocated inside the call to emacs_mule_char. + (emacs_mule_char): Use CODING_DECODE_CHAR instead of DECODE_CHAR. + (CODING_DECODE_CHAR): Add a comment describing its purpose. + +2010-03-02 Kenichi Handa + + * character.c (parse_str_as_multibyte): Fix handling of the + multibyte form of raw-bytes. + (str_as_multibyte): Likewise. + + * buffer.c (Fset_buffer_multibyte): Fix handling of the multibyte + form of raw-bytes. + +2010-02-28 Chong Yidong + + * charset.c (load_charset_map_from_file) + (load_charset_map_from_vector): Zero out allocated + charset_map_entries before using them. + +2010-02-27 Andreas Schwab + + * w32uniscribe.c (uniscribe_check_otf): Fix length check. + 2010-02-27 Chong Yidong * font.c (font_parse_fcname): Recognize "Book", "Condensed", diff -r 59df2de8b31d -r 772da445ced7 src/buffer.c --- a/src/buffer.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/buffer.c Sat Mar 06 05:16:27 2010 -0500 @@ -2499,7 +2499,9 @@ if (ASCII_BYTE_P (*p)) p++, pos++; - else if (EQ (flag, Qt) && (bytes = MULTIBYTE_LENGTH (p, pend)) > 0) + else if (EQ (flag, Qt) + && ! CHAR_BYTE8_HEAD_P (*p) + && (bytes = MULTIBYTE_LENGTH (p, pend)) > 0) p += bytes, pos += bytes; else { diff -r 59df2de8b31d -r 772da445ced7 src/bytecode.c --- a/src/bytecode.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/bytecode.c Sat Mar 06 05:16:27 2010 -0500 @@ -393,6 +393,7 @@ Fsignal (Qquit, Qnil); \ AFTER_POTENTIAL_GC (); \ } \ + ELSE_PENDING_SIGNALS \ } while (0) diff -r 59df2de8b31d -r 772da445ced7 src/character.c --- a/src/character.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/character.c Sat Mar 06 05:16:27 2010 -0500 @@ -630,7 +630,8 @@ const unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH; while (str < adjusted_endp) { - if ((n = MULTIBYTE_LENGTH_NO_CHECK (str)) > 0) + if (! CHAR_BYTE8_HEAD_P (*str) + && (n = MULTIBYTE_LENGTH_NO_CHECK (str)) > 0) str += n, bytes += n; else str++, bytes += 2; @@ -639,7 +640,8 @@ } while (str < endp) { - if ((n = MULTIBYTE_LENGTH (str, endp)) > 0) + if (! CHAR_BYTE8_HEAD_P (*str) + && (n = MULTIBYTE_LENGTH (str, endp)) > 0) str += n, bytes += n; else str++, bytes += 2; @@ -673,10 +675,13 @@ { unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH; while (p < adjusted_endp + && ! CHAR_BYTE8_HEAD_P (*p) && (n = MULTIBYTE_LENGTH_NO_CHECK (p)) > 0) p += n, chars++; } - while ((n = MULTIBYTE_LENGTH (p, endp)) > 0) + while (p < endp + && ! CHAR_BYTE8_HEAD_P (*p) + && (n = MULTIBYTE_LENGTH (p, endp)) > 0) p += n, chars++; if (nchars) *nchars = chars; @@ -694,7 +699,8 @@ unsigned char *adjusted_endp = endp - MAX_MULTIBYTE_LENGTH; while (p < adjusted_endp) { - if ((n = MULTIBYTE_LENGTH_NO_CHECK (p)) > 0) + if (! CHAR_BYTE8_HEAD_P (*p) + && (n = MULTIBYTE_LENGTH_NO_CHECK (p)) > 0) { while (n--) *to++ = *p++; @@ -710,7 +716,8 @@ } while (p < endp) { - if ((n = MULTIBYTE_LENGTH (p, endp)) > 0) + if (! CHAR_BYTE8_HEAD_P (*p) + && (n = MULTIBYTE_LENGTH (p, endp)) > 0) { while (n--) *to++ = *p++; diff -r 59df2de8b31d -r 772da445ced7 src/charset.c --- a/src/charset.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/charset.c Sat Mar 06 05:16:27 2010 -0500 @@ -531,6 +531,7 @@ SAFE_ALLOCA (head, struct charset_map_entries *, sizeof (struct charset_map_entries)); entries = head; + bzero (entries, sizeof (struct charset_map_entries)); n_entries = 0; eof = 0; @@ -557,6 +558,7 @@ SAFE_ALLOCA (entries->next, struct charset_map_entries *, sizeof (struct charset_map_entries)); entries = entries->next; + bzero (entries, sizeof (struct charset_map_entries)); } idx = n_entries % 0x10000; entries->entry[idx].from = from; @@ -596,6 +598,7 @@ SAFE_ALLOCA (head, struct charset_map_entries *, sizeof (struct charset_map_entries)); entries = head; + bzero (entries, sizeof (struct charset_map_entries)); n_entries = 0; for (i = 0; i < len; i += 2) @@ -632,6 +635,7 @@ SAFE_ALLOCA (entries->next, struct charset_map_entries *, sizeof (struct charset_map_entries)); entries = entries->next; + bzero (entries, sizeof (struct charset_map_entries)); } idx = n_entries % 0x10000; entries->entry[idx].from = from; diff -r 59df2de8b31d -r 772da445ced7 src/coding.c --- a/src/coding.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/coding.c Sat Mar 06 05:16:27 2010 -0500 @@ -1005,6 +1005,10 @@ } } +/* This wrapper macro is used to preserve validity of pointers into + buffer text across calls to decode_char, which could cause + relocation of buffers if it loads a charset map, because loading a + charset map allocates large structures. */ #define CODING_DECODE_CHAR(coding, src, src_base, src_end, charset, code, c) \ do { \ charset_map_loaded = 0; \ @@ -2061,7 +2065,7 @@ /* Parse emacs-mule multibyte sequence at SRC and return the decoded character. If CMP_STATUS indicates that we must expect MSEQ or RULE described above, decode it and return the negative value of - the deocded character or rule. If an invalid byte is found, return + the decoded character or rule. If an invalid byte is found, return -1. If SRC is too short, return -2. */ int @@ -2178,7 +2182,7 @@ default: abort (); } - c = DECODE_CHAR (charset, code); + CODING_DECODE_CHAR (coding, src, src_base, src_end, charset, code, c); if (c < 0) goto invalid_code; } @@ -2525,9 +2529,23 @@ else { int nchars, nbytes; + /* emacs_mule_char can load a charset map from a file, which + allocates a large structure and might cause buffer text + to be relocated as result. Thus, we need to remember the + original pointer to buffer text, and fixup all related + pointers after the call. */ + const unsigned char *orig = coding->source; + EMACS_INT offset; c = emacs_mule_char (coding, src_base, &nbytes, &nchars, &id, cmp_status); + offset = coding->source - orig; + if (offset) + { + src += offset; + src_base += offset; + src_end += offset; + } if (c < 0) { if (c == -1) diff -r 59df2de8b31d -r 772da445ced7 src/keymap.c --- a/src/keymap.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/keymap.c Sat Mar 06 05:16:27 2010 -0500 @@ -1633,13 +1633,13 @@ /* If a mouse click position is given, our variables are based on the buffer clicked on, not the current buffer. So we may have to switch the buffer here. */ - + if (CONSP (position)) { Lisp_Object window; - + window = POSN_WINDOW (position); - + if (WINDOWP (window) && BUFFERP (XWINDOW (window)->buffer) && XBUFFER (XWINDOW (window)->buffer) != current_buffer) @@ -1651,14 +1651,14 @@ would not be a problem here, but it is easier to keep things the same. */ - + record_unwind_protect (Fset_buffer, Fcurrent_buffer ()); - + set_buffer_internal (XBUFFER (XWINDOW (window)->buffer)); } } - keymaps = Fcons (current_global_map, Qnil); + keymaps = Fcons (current_global_map, Qnil); if (!NILP (olp)) { @@ -1685,8 +1685,8 @@ /* Get the buffer local maps, possibly overriden by text or overlay properties */ - local_map = get_local_map (pt, current_buffer, Qlocal_map); - keymap = get_local_map (pt, current_buffer, Qkeymap); + local_map = get_local_map (pt, current_buffer, Qlocal_map); + keymap = get_local_map (pt, current_buffer, Qkeymap); if (CONSP (position)) { @@ -1694,7 +1694,7 @@ /* For a mouse click, get the local text-property keymap of the place clicked on, rather than point. */ - + if (POSN_INBUFFER_P (position)) { Lisp_Object pos; @@ -1705,7 +1705,7 @@ { local_map = get_local_map (XINT (pos), current_buffer, Qlocal_map); - + keymap = get_local_map (XINT (pos), current_buffer, Qkeymap); } @@ -1716,12 +1716,12 @@ string displayed via the `display' property, consider `local-map' and `keymap' properties of that string. */ - + if (string = POSN_STRING (position), (CONSP (string) && STRINGP (XCAR (string)))) { Lisp_Object pos, map; - + pos = XCDR (string); string = XCAR (string); if (INTEGERP (pos) @@ -1737,7 +1737,7 @@ keymap = map; } } - + } if (!NILP (local_map)) @@ -2890,7 +2890,7 @@ CONSP (sequences))) { Lisp_Object sequence, function; - + sequence = XCAR (sequences); sequences = XCDR (sequences); @@ -2903,8 +2903,8 @@ Either nil or number as value from Flookup_key means undefined. */ - if (!EQ (shadow_lookup (keymaps, sequence, Qnil, remapped), - definition)) + if (NILP (Fequal (shadow_lookup (keymaps, sequence, Qnil, remapped), + definition))) continue; /* If the current sequence is a command remapping with @@ -2933,12 +2933,12 @@ Faset (sequence, make_number (ASIZE (sequence) - 1), build_string ("(any string)")); } - + /* It is a true unshadowed match. Record it, unless it's already been seen (as could happen when inheriting keymaps). */ if (NILP (Fmember (sequence, found))) found = Fcons (sequence, found); - + /* If firstonly is Qnon_ascii, then we can return the first binding we find. If firstonly is not Qnon_ascii but not nil, then we should return the first ascii-only binding diff -r 59df2de8b31d -r 772da445ced7 src/lisp.h --- a/src/lisp.h Sat Feb 27 07:43:30 2010 -0500 +++ b/src/lisp.h Sat Mar 06 05:16:27 2010 -0500 @@ -1933,6 +1933,12 @@ #ifdef SYNC_INPUT extern void process_pending_signals P_ ((void)); extern int pending_signals; +#define ELSE_PENDING_SIGNALS \ + else if (pending_signals) \ + process_pending_signals (); +#else /* not SYNC_INPUT */ +#define ELSE_PENDING_SIGNALS +#endif /* not SYNC_INPUT */ #define QUIT \ do { \ @@ -1944,26 +1950,9 @@ Fthrow (Vthrow_on_input, Qt); \ Fsignal (Qquit, Qnil); \ } \ - else if (pending_signals) \ - process_pending_signals (); \ + ELSE_PENDING_SIGNALS \ } while (0) -#else /* not SYNC_INPUT */ - -#define QUIT \ - do { \ - if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ - { \ - Lisp_Object flag = Vquit_flag; \ - Vquit_flag = Qnil; \ - if (EQ (Vthrow_on_input, flag)) \ - Fthrow (Vthrow_on_input, Qt); \ - Fsignal (Qquit, Qnil); \ - } \ - } while (0) - -#endif /* not SYNC_INPUT */ - /* Nonzero if ought to quit now. */ diff -r 59df2de8b31d -r 772da445ced7 src/regex.c --- a/src/regex.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/regex.c Sat Mar 06 05:16:27 2010 -0500 @@ -3065,6 +3065,13 @@ don't need to handle them for multibyte. They are distinguished by a negative wctype. */ + /* Setup the gl_state object to its buffer-defined + value. This hardcodes the buffer-global + syntax-table for ASCII chars, while the other chars + will obey syntax-table properties. It's not ideal, + but it's the way it's been done until now. */ + SETUP_SYNTAX_TABLE (BEGV, 0); + for (ch = 0; ch < 256; ++ch) { c = RE_CHAR_TO_MULTIBYTE (ch); diff -r 59df2de8b31d -r 772da445ced7 src/syntax.c --- a/src/syntax.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/syntax.c Sat Mar 06 05:16:27 2010 -0500 @@ -1747,6 +1747,12 @@ } immediate_quit = 1; + /* This code may look up syntax tables using macros that rely on the + gl_state object. To make sure this object is not out of date, + let's initialize it manually. + We ignore syntax-table text-properties for now, since that's + what we've done in the past. */ + SETUP_SYNTAX_TABLE (BEGV, 0); if (forwardp) { if (multibyte) @@ -2072,7 +2078,7 @@ { int fits_class = 0; - while (! NILP (iso_classes)) + while (CONSP (iso_classes)) { Lisp_Object elt; elt = XCAR (iso_classes); diff -r 59df2de8b31d -r 772da445ced7 src/w32uniscribe.c --- a/src/w32uniscribe.c Sat Feb 27 07:43:30 2010 -0500 +++ b/src/w32uniscribe.c Sat Mar 06 05:16:27 2010 -0500 @@ -666,7 +666,7 @@ struct gcpro gcpro1; /* Check the spec is in the right format. */ - if (!CONSP (otf_spec) || Flength (otf_spec) < 3) + if (!CONSP (otf_spec) || XINT (Flength (otf_spec)) < 3) return 0; /* Break otf_spec into its components. */ diff -r 59df2de8b31d -r 772da445ced7 test/cedet/ede-tests.el --- a/test/cedet/ede-tests.el Sat Feb 27 07:43:30 2010 -0500 +++ b/test/cedet/ede-tests.el Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,30 @@ +;;; ede-tests.el --- Some tests for the Emacs Development Environment + +;; Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. + +;; Author: Eric M. Ludlam + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;; Extracted from ede-locate.el in the CEDET distribution. + +;;; Code: + ;;; From ede-locate: (require 'ede/locate) @@ -58,3 +85,4 @@ ) ;; arch-tag: 79fae12e-652f-4544-a20e-b24d87b4917d +;;; ede-test.el ends here diff -r 59df2de8b31d -r 772da445ced7 test/cedet/srecode-tests.el --- a/test/cedet/srecode-tests.el Sat Feb 27 07:43:30 2010 -0500 +++ b/test/cedet/srecode-tests.el Sat Mar 06 05:16:27 2010 -0500 @@ -1,3 +1,31 @@ +;;; srecode-tests.el --- Some tests for CEDET's srecode + +;; Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. + +;; Author: Eric M. Ludlam + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . + +;;; Commentary: + +;; Extracted from srecode-fields.el and srecode-document.el in the +;; CEDET distribution. + +;;; Code: + ;;; From srecode-fields: (require 'srecode/fields) @@ -266,3 +294,4 @@ (srecode-dump extract)))))) ;; arch-tag: 7a467849-b415-4bdc-ba2a-284ace156a65 +;;; srecode-tests.el ends here