Using saved parent location: http://bzr.savannah.gnu.org/r/emacs/trunk/ Now on revision 101203. ------------------------------------------------------------ revno: 101203 committer: Chong Yidong branch nick: trunk timestamp: Sat 2010-08-28 21:31:45 -0400 message: Let version-to-list handle versions like "10.3d". * lisp/subr.el (version-regexp-alist): Don't use "a" and "b" for "alpha" and "beta". (version-to-list): Handle versions like "10.3d". diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-08-28 18:52:36 +0000 +++ lisp/ChangeLog 2010-08-29 01:31:45 +0000 @@ -1,3 +1,9 @@ +2010-08-29 Chong Yidong + + * subr.el (version-regexp-alist): Don't use "a" and "b" for + "alpha" and "beta". + (version-to-list): Handle versions like "10.3d". + 2010-08-28 Stefan Monnier * emacs-lisp/macroexp.el (macroexpand-all-1): Use pcase. === modified file 'lisp/subr.el' --- lisp/subr.el 2010-08-22 20:02:16 +0000 +++ lisp/subr.el 2010-08-29 01:31:45 +0000 @@ -3584,11 +3584,11 @@ (defconst version-regexp-alist - '(("^[-_+ ]?a\\(lpha\\)?$" . -3) + '(("^[-_+ ]?alpha$" . -3) ("^[-_+]$" . -3) ; treat "1.2.3-20050920" and "1.2-3" as alpha releases ("^[-_+ ]cvs$" . -3) ; treat "1.2.3-CVS" as alpha release - ("^[-_+ ]?b\\(eta\\)?$" . -2) - ("^[-_+ ]?\\(pre\\|rc\\)$" . -1)) + ("^[-_+ ]?beta$" . -2) + ("^[-_+ ]?\\(pre\\|rcc\\)$" . -1)) "*Specify association between non-numeric version and its priority. This association is used to handle version string like \"1.0pre2\", @@ -3681,8 +3681,13 @@ (setq al version-regexp-alist) (while (and al (not (string-match (caar al) s))) (setq al (cdr al))) - (or al (error "Invalid version syntax: '%s'" ver)) - (setq lst (cons (cdar al) lst))))) + (cond (al + (push (cdar al) lst)) + ;; Convert 22.3a to 22.3.1. + ((string-match "^[-_+ ]?\\([a-zA-Z]\\)$" s) + (push (- (aref (downcase (match-string 1 s)) 0) ?a -1) + lst)) + (t (error "Invalid version syntax: '%s'" ver)))))) (if (null lst) (error "Invalid version syntax: '%s'" ver) (nreverse lst))))) ------------------------------------------------------------ revno: 101202 committer: Stefan Monnier branch nick: trunk timestamp: Sat 2010-08-28 20:52:36 +0200 message: * lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Use pcase. (macroexp-accumulate): Use `declare'. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2010-08-27 03:19:35 +0000 +++ lisp/ChangeLog 2010-08-28 18:52:36 +0000 @@ -1,3 +1,8 @@ +2010-08-28 Stefan Monnier + + * emacs-lisp/macroexp.el (macroexpand-all-1): Use pcase. + (macroexp-accumulate): Use `declare'. + 2010-08-27 Vinicius Jose Latorre * whitespace.el (whitespace-style): Adjust type declaration. === modified file 'lisp/emacs-lisp/macroexp.el' --- lisp/emacs-lisp/macroexp.el 2010-06-17 00:17:22 +0000 +++ lisp/emacs-lisp/macroexp.el 2010-08-28 18:52:36 +0000 @@ -52,6 +52,7 @@ result will be eq to LIST). \(fn (VAR LIST) BODY...)" + (declare (indent 1)) (let ((var (car var+list)) (list (cadr var+list)) (shared (make-symbol "shared")) @@ -72,7 +73,6 @@ (push ,new-el ,unshared)) (setq ,tail (cdr ,tail))) (nconc (nreverse ,unshared) ,shared)))) -(put 'macroexp-accumulate 'lisp-indent-function 1) (defun macroexpand-all-forms (forms &optional skip) "Return FORMS with macros expanded. FORMS is a list of forms. @@ -107,80 +107,69 @@ macroexpand-all-environment) ;; Normal form; get its expansion, and then expand arguments. (setq form (macroexpand form macroexpand-all-environment)) - (if (consp form) - (let ((fun (car form))) - (cond - ((eq fun 'cond) - (maybe-cons fun (macroexpand-all-clauses (cdr form)) form)) - ((eq fun 'condition-case) - (maybe-cons - fun - (maybe-cons (cadr form) - (maybe-cons (macroexpand-all-1 (nth 2 form)) - (macroexpand-all-clauses (nthcdr 3 form) 1) - (cddr form)) - (cdr form)) - form)) - ((eq fun 'defmacro) - (push (cons (cadr form) (cons 'lambda (cddr form))) - macroexpand-all-environment) - (macroexpand-all-forms form 3)) - ((eq fun 'defun) - (macroexpand-all-forms form 3)) - ((memq fun '(defvar defconst)) - (macroexpand-all-forms form 2)) - ((eq fun 'function) - (if (and (consp (cadr form)) (eq (car (cadr form)) 'lambda)) - (maybe-cons fun - (maybe-cons (macroexpand-all-forms (cadr form) 2) - nil - (cdr form)) - form) - form)) - ((memq fun '(let let*)) - (maybe-cons fun - (maybe-cons (macroexpand-all-clauses (cadr form) 1) - (macroexpand-all-forms (cddr form)) - (cdr form)) - form)) - ((eq fun 'quote) - form) - ((and (consp fun) (eq (car fun) 'lambda)) - ;; Embedded lambda in function position. - (maybe-cons (macroexpand-all-forms fun 2) - (macroexpand-all-forms (cdr form)) - form)) - ;; The following few cases are for normal function calls that - ;; are known to funcall one of their arguments. The byte - ;; compiler has traditionally handled these functions specially - ;; by treating a lambda expression quoted by `quote' as if it - ;; were quoted by `function'. We make the same transformation - ;; here, so that any code that cares about the difference will - ;; see the same transformation. - ;; First arg is a function: - ((and (memq fun '(apply mapcar mapatoms mapconcat mapc)) - (consp (cadr form)) - (eq (car (cadr form)) 'quote)) - ;; We don't use `maybe-cons' since there's clearly a change. - (cons fun - (cons (macroexpand-all-1 (cons 'function (cdr (cadr form)))) - (macroexpand-all-forms (cddr form))))) - ;; Second arg is a function: - ((and (eq fun 'sort) - (consp (nth 2 form)) - (eq (car (nth 2 form)) 'quote)) - ;; We don't use `maybe-cons' since there's clearly a change. - (cons fun - (cons (macroexpand-all-1 (cadr form)) - (cons (macroexpand-all-1 - (cons 'function (cdr (nth 2 form)))) - (macroexpand-all-forms (nthcdr 3 form)))))) - (t - ;; For everything else, we just expand each argument (for - ;; setq/setq-default this works alright because the variable names - ;; are symbols). - (macroexpand-all-forms form 1)))) - form))) + (pcase form + (`(cond . ,clauses) + (maybe-cons 'cond (macroexpand-all-clauses clauses) form)) + (`(condition-case . ,(or `(,err ,body . ,handlers) dontcare)) + (maybe-cons + 'condition-case + (maybe-cons err + (maybe-cons (macroexpand-all-1 body) + (macroexpand-all-clauses handlers 1) + (cddr form)) + (cdr form)) + form)) + (`(defmacro ,name . ,args-and-body) + (push (cons name (cons 'lambda args-and-body)) + macroexpand-all-environment) + (macroexpand-all-forms form 3)) + (`(defun . ,_) (macroexpand-all-forms form 3)) + (`(,(or `defvar `defconst) . ,_) (macroexpand-all-forms form 2)) + (`(function ,(and f `(lambda . ,_))) + (maybe-cons 'function + (maybe-cons (macroexpand-all-forms f 2) + nil + (cdr form)) + form)) + (`(,(or `function `quote) . ,_) form) + (`(,(and fun (or `let `let*)) . ,(or `(,bindings . ,body) dontcare)) + (maybe-cons fun + (maybe-cons (macroexpand-all-clauses bindings 1) + (macroexpand-all-forms body) + (cdr form)) + form)) + (`(,(and fun `(lambda . ,_)) . ,args) + ;; Embedded lambda in function position. + (maybe-cons (macroexpand-all-forms fun 2) + (macroexpand-all-forms args) + form)) + ;; The following few cases are for normal function calls that + ;; are known to funcall one of their arguments. The byte + ;; compiler has traditionally handled these functions specially + ;; by treating a lambda expression quoted by `quote' as if it + ;; were quoted by `function'. We make the same transformation + ;; here, so that any code that cares about the difference will + ;; see the same transformation. + ;; First arg is a function: + (`(,(and fun (or `apply `mapcar `mapatoms `mapconcat `mapc)) ',f . ,args) + ;; We don't use `maybe-cons' since there's clearly a change. + (cons fun + (cons (macroexpand-all-1 (list 'function f)) + (macroexpand-all-forms args)))) + ;; Second arg is a function: + (`(,(and fun (or `sort)) ,arg1 ',f . ,args) + ;; We don't use `maybe-cons' since there's clearly a change. + (cons fun + (cons (macroexpand-all-1 arg1) + (cons (macroexpand-all-1 + (list 'function f)) + (macroexpand-all-forms args))))) + (`(,_ . ,_) + ;; For every other list, we just expand each argument (for + ;; setq/setq-default this works alright because the variable names + ;; are symbols). + (macroexpand-all-forms form 1)) + (t form)))) ;;;###autoload (defun macroexpand-all (form &optional environment) ------------------------------------------------------------ revno: 101201 committer: Eli Zaretskii branch nick: trunk timestamp: Sat 2010-08-28 11:10:13 +0300 message: Improve ELisp manual to fix bug #6929. display.texi (Fringe Size/Pos): Add a cross-reference to "Layout Parameters", where the default fringe width is described. frames.texi (Window Frame Parameters, Basic Parameters) (Position Parameters, Layout Parameters, Management Parameters) (Cursor Parameters, Font and Color Parameters): Add indexing for frame parameters. (Bug#6929) diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2010-08-25 20:25:32 +0000 +++ doc/lispref/ChangeLog 2010-08-28 08:10:13 +0000 @@ -1,3 +1,13 @@ +2010-08-28 Eli Zaretskii + + * display.texi (Fringe Size/Pos): Add a cross-reference to "Layout + Parameters", where the default fringe width is described. + + * frames.texi (Window Frame Parameters, Basic Parameters) + (Position Parameters, Layout Parameters, Management Parameters) + (Cursor Parameters, Font and Color Parameters): Add indexing for + frame parameters. (Bug#6929) + 2010-08-25 Tom Tromey * vol2.texi (Top): Update. === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2010-08-18 10:35:23 +0000 +++ doc/lispref/display.texi 2010-08-28 08:10:13 +0000 @@ -3214,7 +3214,9 @@ The values of these variables take effect when you display the buffer in a window. If you change them while the buffer is visible, you can call @code{set-window-buffer} to display it once again in the -same window, to make the changes take effect. +same window, to make the changes take effect. A buffer that does not +specify values for these variables will use the default values +specified for the frame; see @ref{Layout Parameters}. @defun set-window-fringes window left &optional right outside-margins This function sets the fringe widths of window @var{window}. === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2010-07-29 17:10:41 +0000 +++ doc/lispref/frames.texi 2010-08-28 08:10:13 +0000 @@ -461,6 +461,7 @@ @node Window Frame Parameters @subsection Window Frame Parameters +@cindex frame parameters for windowed displays Just what parameters a frame has depends on what display mechanism it uses. This section describes the parameters that have special @@ -489,16 +490,19 @@ frame. @code{title} and @code{name} are meaningful on all terminals. @table @code +@vindex display, a frame parameter @item display The display on which to open this frame. It should be a string of the form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the @code{DISPLAY} environment variable. +@vindex display-type, a frame parameter @item display-type This parameter describes the range of possible colors that can be used in this frame. Its value is @code{color}, @code{grayscale} or @code{mono}. +@vindex title, a frame parameter @item title If a frame has a non-@code{nil} title, it appears in the window system's title bar at the top of the frame, and also in the mode line @@ -507,6 +511,7 @@ Emacs is not using a window system, and can only display one frame at a time. @xref{Frame Titles}. +@vindex name, a frame parameter @item name The name of the frame. The frame name serves as a default for the frame title, if the @code{title} parameter is unspecified or @code{nil}. If @@ -520,11 +525,13 @@ @node Position Parameters @subsubsection Position Parameters +@cindex window position on display Position parameters' values are normally measured in pixels, but on text-only terminals they count characters or lines instead. @table @code +@vindex left, a frame parameter @item left The position, in pixels, of the left (or right) edge of the frame with respect to the left (or right) edge of the screen. The value may be: @@ -550,11 +557,13 @@ be sure the position you specify is not ignored, specify a non-@code{nil} value for the @code{user-position} parameter as well. +@vindex top, a frame parameter @item top The screen position of the top (or bottom) edge, in pixels, with respect to the top (or bottom) edge of the screen. It works just like @code{left}, except vertically instead of horizontally. +@vindex icon-left, a frame parameter @item icon-left The screen position of the left edge @emph{of the frame's icon}, in pixels, counting from the left edge of the screen. This takes effect if @@ -564,11 +573,13 @@ a value for @code{icon-top} and vice versa. The window manager may ignore these two parameters. +@vindex icon-top, a frame parameter @item icon-top The screen position of the top edge @emph{of the frame's icon}, in pixels, counting from the top edge of the screen. This takes effect if and when the frame is iconified. +@vindex user-position, a frame parameter @item user-position When you create a frame and specify its screen position with the @code{left} and @code{top} parameters, use this parameter to say whether @@ -576,6 +587,7 @@ way by a human user) or merely program-specified (chosen by a program). A non-@code{nil} value says the position was user-specified. +@cindex window positions and window managers Window managers generally heed user-specified positions, and some heed program-specified positions too. But many ignore program-specified positions, placing the window in a default fashion or letting the user @@ -591,24 +603,31 @@ @node Size Parameters @subsubsection Size Parameters +@cindex window size on display Size parameters' values are normally measured in pixels, but on text-only terminals they count characters or lines instead. @table @code +@vindex height, a frame parameter @item height The height of the frame contents, in characters. (To get the height in pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.) +@vindex width, a frame parameter @item width The width of the frame contents, in characters. (To get the width in pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.) +@vindex user-size, a frame parameter @item user-size This does for the size parameters @code{height} and @code{width} what -the @code{user-position} parameter (see above) does for the position -parameters @code{top} and @code{left}. +the @code{user-position} parameter (@pxref{Position Parameters, +user-position}) does for the position parameters @code{top} and +@code{left}. +@cindex full-screen frames +@vindex fullscreen, a frame parameter @item fullscreen Specify that width, height or both shall be maximized. The value @code{fullwidth} specifies that width shall be as wide as possible. @@ -623,33 +642,42 @@ @node Layout Parameters @subsubsection Layout Parameters +@cindex layout parameters of frames +@cindex frame layout parameters These frame parameters enable or disable various parts of the frame, or control their sizes. @table @code +@vindex border-width, a frame parameter @item border-width The width in pixels of the frame's border. +@vindex internal-border-width, a frame parameter @item internal-border-width The distance in pixels between text (or fringe) and the frame's border. +@vindex vertical-scroll-bars, a frame parameter @item vertical-scroll-bars Whether the frame has scroll bars for vertical scrolling, and which side of the frame they should be on. The possible values are @code{left}, @code{right}, and @code{nil} for no scroll bars. @ignore +@vindex horizontal-scroll-bars, a frame parameter @item horizontal-scroll-bars Whether the frame has scroll bars for horizontal scrolling (non-@code{nil} means yes). Horizontal scroll bars are not currently implemented. @end ignore +@vindex scroll-bar-width, a frame parameter @item scroll-bar-width The width of vertical scroll bars, in pixels, or @code{nil} meaning to use the default width. +@vindex left-fringe, a frame parameter +@vindex right-fringe, a frame parameter @item left-fringe @itemx right-fringe The default width of the left and right fringes of windows in this @@ -666,22 +694,26 @@ width by specifying that width as a negative integer. If both widths are negative, only the left fringe gets the specified width. +@vindex menu-bar-lines, a frame parameter @item menu-bar-lines The number of lines to allocate at the top of the frame for a menu bar. The default is 1. A value of @code{nil} means don't display a menu bar. @xref{Menu Bar}. (The X toolkit and GTK allow at most one menu bar line; they treat larger values as 1.) +@vindex tool-bar-lines, a frame parameter @item tool-bar-lines The number of lines to use for the tool bar. A value of @code{nil} means don't display a tool bar. (GTK and Nextstep allow at most one tool bar line; they treat larger values as 1.) +@vindex tool-bar-position, a frame parameter @item tool-bar-position The position of the tool bar. Currently only for the GTK tool bar. Value can be one of @code{top}, @code{bottom} @code{left}, @code{right}. The default is @code{top}. +@vindex line-spacing, a frame parameter @item line-spacing Additional space to leave below each text line, in pixels (a positive integer). @xref{Line Height}, for more information. @@ -694,6 +726,7 @@ with which buffers have been, or should, be displayed in the frame. @table @code +@vindex minibuffer, a frame parameter @item minibuffer Whether this frame has its own minibuffer. The value @code{t} means yes, @code{nil} means no, @code{only} means this frame is just a @@ -703,6 +736,7 @@ This frame parameter takes effect when the frame is created, and can not be changed afterwards. +@vindex buffer-predicate, a frame parameter @item buffer-predicate The buffer-predicate function for this frame. The function @code{other-buffer} uses this predicate (from the selected frame) to @@ -711,61 +745,73 @@ each buffer; if the predicate returns a non-@code{nil} value, it considers that buffer. +@vindex buffer-list, a frame parameter @item buffer-list -A list of buffers that have been selected in this frame, -ordered most-recently-selected first. +A list of buffers that have been selected in this frame, ordered +most-recently-selected first. +@vindex unsplittable, a frame parameter @item unsplittable If non-@code{nil}, this frame's window is never split automatically. @end table @node Management Parameters @subsubsection Window Management Parameters -@cindex window manager, and frame parameters +@cindex window manager interaction, and frame parameters These frame parameters, meaningful only on window system displays, interact with the window manager. @table @code +@vindex visibility, a frame parameter @item visibility The state of visibility of the frame. There are three possibilities: @code{nil} for invisible, @code{t} for visible, and @code{icon} for iconified. @xref{Visibility of Frames}. +@vindex auto-raise, a frame parameter @item auto-raise Whether selecting the frame raises it (non-@code{nil} means yes). +@vindex auto-lower, a frame parameter @item auto-lower Whether deselecting the frame lowers it (non-@code{nil} means yes). +@vindex icon-type, a frame parameter @item icon-type The type of icon to use for this frame when it is iconified. If the value is a string, that specifies a file containing a bitmap to use. Any other non-@code{nil} value specifies the default bitmap icon (a picture of a gnu); @code{nil} specifies a text icon. +@vindex icon-name, a frame parameter @item icon-name The name to use in the icon for this frame, when and if the icon appears. If this is @code{nil}, the frame's title is used. +@vindex window-id, a frame parameter @item window-id The number of the window-system window used by the frame to contain the actual Emacs windows. +@vindex outer-window-id, a frame parameter @item outer-window-id The number of the outermost window-system window used for the whole frame. +@vindex wait-for-wm, a frame parameter @item wait-for-wm If non-@code{nil}, tell Xt to wait for the window manager to confirm geometry changes. Some window managers, including versions of Fvwm2 and KDE, fail to confirm, so Xt hangs. Set this to @code{nil} to prevent hanging with those window managers. +@vindex sticky, a frame parameter @item sticky If non-@code{nil}, the frame is visible on all virtual desktops on systems with virtual desktops. @ignore +@vindex parent-id, a frame parameter @item parent-id @c ??? Not yet working. The X window number of the window that should be the parent of this one. @@ -777,10 +823,12 @@ @node Cursor Parameters @subsubsection Cursor Parameters +@cindex cursor, and frame parameters This frame parameter controls the way the cursor looks. @table @code +@vindex cursor-type, a frame parameter @item cursor-type How to display the cursor. Legitimate values are: @@ -832,10 +880,12 @@ @node Font and Color Parameters @subsubsection Font and Color Parameters +@cindex font and color, frame parameters These frame parameters control the use of fonts and colors. @table @code +@vindex font-backend, a frame parameter @item font-backend A list of symbols, specifying the @dfn{font backends} to use for drawing fonts in the frame, in order of priority. On X, there are @@ -844,10 +894,12 @@ is only one available font backend, so it does not make sense to modify this frame parameter. +@vindex background-mode, a frame parameter @item background-mode This parameter is either @code{dark} or @code{light}, according to whether the background color is a light one or a dark one. +@vindex tty-color-mode, a frame parameter @item tty-color-mode @cindex standard colors for character terminals This parameter overrides the terminal's color support as given by the @@ -863,6 +915,7 @@ the value of @code{tty-color-mode-alist}, and the associated number is used instead. +@vindex screen-gamma, a frame parameter @item screen-gamma @cindex gamma correction If this is a number, Emacs performs ``gamma correction'' which adjusts @@ -882,6 +935,7 @@ that makes colors darker. A screen gamma value of 1.5 may give good results for LCD color displays. +@vindex alpha, a frame parameter @item alpha @cindex opacity, frame @cindex transparency, frame @@ -909,37 +963,45 @@ faces (@pxref{Standard Faces,,, emacs, The Emacs Manual}): @table @code +@vindex font, a frame parameter @item font The name of the font for displaying text in the frame. This is a string, either a valid font name for your system or the name of an Emacs fontset (@pxref{Fontsets}). It is equivalent to the @code{font} attribute of the @code{default} face. +@vindex foreground-color, a frame parameter @item foreground-color The color to use for the image of a character. It is equivalent to the @code{:foreground} attribute of the @code{default} face. +@vindex background-color, a frame parameter @item background-color The color to use for the background of characters. It is equivalent to the @code{:background} attribute of the @code{default} face. +@vindex mouse-color, a frame parameter @item mouse-color The color for the mouse pointer. It is equivalent to the @code{:background} attribute of the @code{mouse} face. +@vindex cursor-color, a frame parameter @item cursor-color The color for the cursor that shows point. It is equivalent to the @code{:background} attribute of the @code{cursor} face. +@vindex border-color, a frame parameter @item border-color The color for the border of the frame. It is equivalent to the @code{:background} attribute of the @code{border} face. +@vindex scroll-bar-foreground, a frame parameter @item scroll-bar-foreground If non-@code{nil}, the color for the foreground of scroll bars. It is equivalent to the @code{:foreground} attribute of the @code{scroll-bar} face. +@vindex scroll-bar-background, a frame parameter @item scroll-bar-background If non-@code{nil}, the color for the background of scroll bars. It is equivalent to the @code{:background} attribute of the ------------------------------------------------------------ revno: 101200 committer: Eli Zaretskii branch nick: trunk timestamp: Fri 2010-08-27 12:29:32 +0300 message: msdos/ChangeLog: Document the change in revno 101167. diff: === modified file 'msdos/ChangeLog' --- msdos/ChangeLog 2010-08-20 20:26:12 +0000 +++ msdos/ChangeLog 2010-08-27 09:29:32 +0000 @@ -1,3 +1,7 @@ +2010-08-22 Chong Yidong + + * sedleim.inp (RUN-EMACS): Don't use --multibyte. + 2010-08-20 Eli Zaretskii * sed1v2.inp (IMAGEMAGICK_LIBS, IMAGEMAGICK_CFLAGS): Edit to empty.