Now on revision 106094. Conflicting tags: mh-e-doc-8.3 mh-e-8.3 ------------------------------------------------------------ revno: 106094 committer: Glenn Morris branch nick: trunk timestamp: Sat 2011-10-15 13:56:02 -0700 message: * test/automated/f90.el: New file. diff: === modified file 'test/ChangeLog' --- test/ChangeLog 2011-09-27 18:52:00 +0000 +++ test/ChangeLog 2011-10-15 20:56:02 +0000 @@ -1,3 +1,7 @@ +2011-10-15 Glenn Morris + + * automated/f90.el: New file. + 2011-09-27 Ulf Jasper * automated/newsticker-tests.el: Move newsticker-testsuite.el === added file 'test/automated/f90.el' --- test/automated/f90.el 1970-01-01 00:00:00 +0000 +++ test/automated/f90.el 2011-10-15 20:56:02 +0000 @@ -0,0 +1,158 @@ +;;; f90.el --- tests for progmodes/f90.el + +;; Copyright (C) 2011 Free Software Foundation, Inc. + +;; Author: Glenn Morris + +;; 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: + +;; This file does not have "test" in the name, because it lives under +;; a test/ directory, so that would be superfluous. + +;;; Code: + +(require 'ert) +(require 'f90) + +(defconst f90-test-indent "\ +!! Comment before code. +!!! Comments before code. +#preprocessor before code + +program progname + + implicit none + + integer :: i + + !! Comment. + + do i = 1, 10 + +#preprocessor + + !! Comment. + if ( i % 2 == 0 ) then + !! Comment. + cycle + else + write(*,*) i + end if + end do + +!!! Comment. + +end program progname +" + "Test string for F90 indentation.") + +(ert-deftest f90-test-indent () + "Test F90 indentation." + (with-temp-buffer + (f90-mode) + (insert f90-test-indent) + (indent-rigidly (point-min) (point-max) -999) + (f90-indent-region (point-min) (point-max)) + (should (string-equal (buffer-string) f90-test-indent)))) + +(ert-deftest f90-test-bug3729 () + "Test for http://debbugs.gnu.org/3729 ." + :expected-result :failed + (with-temp-buffer + (f90-mode) + (insert "!! Comment + +include \"file.f90\" + +subroutine test (x) + real x + x = x+1. + return +end subroutine test") + (goto-char (point-min)) + (forward-line 2) + (f90-indent-subprogram) + (should (= 0 (current-indentation))))) + +(ert-deftest f90-test-bug3730 () + "Test for http://debbugs.gnu.org/3730 ." + (with-temp-buffer + (f90-mode) + (insert "a" ) + (move-to-column 68 t) + (insert "(/ x /)") + (f90-do-auto-fill) + (beginning-of-line) + (skip-chars-forward "[ \t]") + (should (equal "&(/" (buffer-substring (point) (+ 3 (point))))))) + +;; TODO bug#5593 + +(ert-deftest f90-test-bug8691 () + "Test for http://debbugs.gnu.org/8691 ." + (with-temp-buffer + (f90-mode) + (insert "module modname +type, bind(c) :: type1 +integer :: part1 +end type type1 +end module modname") + (f90-indent-subprogram) + (forward-line -1) + (should (= 2 (current-indentation))))) + +;; TODO bug#8812 + +(ert-deftest f90-test-bug8820 () + "Test for http://debbugs.gnu.org/8820 ." + (with-temp-buffer + (f90-mode) + (should (eq (char-syntax ?%) (string-to-char "."))))) + +(ert-deftest f90-test-bug9553a () + "Test for http://debbugs.gnu.org/9553 ." + (with-temp-buffer + (f90-mode) + (insert "!!!") + (dotimes (_i 20) (insert " aaaa")) + (f90-do-auto-fill) + (beginning-of-line) + ;; This gives a more informative failure than looking-at. + (should (equal "!!! a" (buffer-substring (point) (+ 5 (point))))))) + +(ert-deftest f90-test-bug9553b () + "Test for http://debbugs.gnu.org/9553 ." + (with-temp-buffer + (f90-mode) + (insert "!!!") + (dotimes (_i 13) (insert " aaaa")) + (insert "a, aaaa") + (f90-do-auto-fill) + (beginning-of-line) + (should (equal "!!! a" (buffer-substring (point) (+ 5 (point))))))) + +(ert-deftest f90-test-bug9690 () + "Test for http://debbugs.gnu.org/9690 ." + (with-temp-buffer + (f90-mode) + (insert "#include \"foo.h\"") + (f90-indent-line) + (should (= 0 (current-indentation))))) + + +;;; f90.el ends here ------------------------------------------------------------ revno: 106093 committer: Glenn Morris branch nick: trunk timestamp: Sat 2011-10-15 12:24:14 -0700 message: * emacs-lisp/ert.el (ert--explain-equal-rec, ert-select-tests): Doc fixes. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-10-15 16:57:38 +0000 +++ lisp/ChangeLog 2011-10-15 19:24:14 +0000 @@ -1,3 +1,8 @@ +2011-10-15 Glenn Morris + + * emacs-lisp/ert.el (ert--explain-equal-rec, ert-select-tests): + Doc fixes. + 2011-10-15 Chong Yidong * net/network-stream.el (network-stream-open-starttls): Improve === modified file 'lisp/emacs-lisp/ert.el' --- lisp/emacs-lisp/ert.el 2011-03-20 10:17:10 +0000 +++ lisp/emacs-lisp/ert.el 2011-10-15 19:24:14 +0000 @@ -577,8 +577,7 @@ (t x))) (defun ert--explain-equal-rec (a b) - "Returns a programmer-readable explanation of why A and B are not `equal'. - + "Return a programmer-readable explanation of why A and B are not `equal'. Returns nil if they are." (if (not (equal (type-of a) (type-of b))) `(different-types ,a ,b) @@ -1020,36 +1019,36 @@ (ert-test-result-type-p result (ert-test-expected-result-type test))) (defun ert-select-tests (selector universe) - "Return the tests that match SELECTOR. - -UNIVERSE specifies the set of tests to select from; it should be -a list of tests, or t, which refers to all tests named by symbols -in `obarray'. - -Returns the set of tests as a list. - -Valid selectors: - -nil -- Selects the empty set. -t -- Selects UNIVERSE. + "Return a list of tests that match SELECTOR. + +UNIVERSE specifies the set of tests to select from; it should be a list +of tests, or t, which refers to all tests named by symbols in `obarray'. + +Valid SELECTORs: + +nil -- Selects the empty set. +t -- Selects UNIVERSE. :new -- Selects all tests that have not been run yet. -:failed, :passed -- Select tests according to their most recent result. +:failed, :passed -- Select tests according to their most recent result. :expected, :unexpected -- Select tests according to their most recent result. -a string -- Selects all tests that have a name that matches the string, - a regexp. -a test -- Selects that test. +a string -- A regular expression selecting all tests with matching names. +a test -- (i.e., an object of the ert-test data-type) Selects that test. a symbol -- Selects the test that the symbol names, errors if none. -\(member TESTS...\) -- Selects TESTS, a list of tests or symbols naming tests. +\(member TESTS...) -- Selects the elements of TESTS, a list of tests + or symbols naming tests. \(eql TEST\) -- Selects TEST, a test or a symbol naming a test. -\(and SELECTORS...\) -- Selects the tests that match all SELECTORS. -\(or SELECTORS...\) -- Selects the tests that match any SELECTOR. -\(not SELECTOR\) -- Selects all tests that do not match SELECTOR. +\(and SELECTORS...) -- Selects the tests that match all SELECTORS. +\(or SELECTORS...) -- Selects the tests that match any of the SELECTORS. +\(not SELECTOR) -- Selects all tests that do not match SELECTOR. \(tag TAG) -- Selects all tests that have TAG on their tags list. -\(satisfies PREDICATE\) -- Selects all tests that satisfy PREDICATE. + A tag is an arbitrary label you can apply when you define a test. +\(satisfies PREDICATE) -- Selects all tests that satisfy PREDICATE. + PREDICATE is a function that takes an ert-test object as argument, + and returns non-nil if it is selected. Only selectors that require a superset of tests, such as (satisfies ...), strings, :new, etc. make use of UNIVERSE. -Selectors that do not, such as \(member ...\), just return the +Selectors that do not, such as (member ...), just return the set implied by them without checking whether it is really contained in UNIVERSE." ;; This code needs to match the etypecase in ------------------------------------------------------------ revno: 106092 committer: Chong Yidong branch nick: trunk timestamp: Sat 2011-10-15 12:57:38 -0400 message: * net/network-stream.el (network-stream-open-starttls): Improve failure detection for lack of TLS capability. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-10-15 16:35:19 +0000 +++ lisp/ChangeLog 2011-10-15 16:57:38 +0000 @@ -1,5 +1,8 @@ 2011-10-15 Chong Yidong + * net/network-stream.el (network-stream-open-starttls): Improve + detection of failure due to lack of TLS support. + * mail/sendmail.el (sendmail-query-once): Tweak prompt message, putting the input text in front and in bold. === modified file 'lisp/net/network-stream.el' --- lisp/net/network-stream.el 2011-08-17 20:50:33 +0000 +++ lisp/net/network-stream.el 2011-10-15 16:57:38 +0000 @@ -218,7 +218,7 @@ (resulting-type 'plain) (builtin-starttls (and (fboundp 'gnutls-available-p) (gnutls-available-p))) - starttls-command error) + starttls-available starttls-command error) ;; First check whether the server supports STARTTLS at all. (when (and capabilities success-string starttls-function) @@ -227,10 +227,11 @@ ;; If we have built-in STARTTLS support, try to upgrade the ;; connection. (when (and starttls-command - (or builtin-starttls - (and (or require-tls - (plist-get parameters :use-starttls-if-possible)) - (starttls-available-p))) + (setq starttls-available + (or builtin-starttls + (and (or require-tls + (plist-get parameters :use-starttls-if-possible)) + (starttls-available-p)))) (not (eq (plist-get parameters :type) 'plain))) ;; If using external STARTTLS, drop this connection and start ;; anew with `starttls-open-stream'. @@ -298,9 +299,13 @@ ;; support, or no gnutls-cli installed. (eq resulting-type 'plain)) (setq error - (if require-tls + (if starttls-available "Server does not support TLS" - "Server supports STARTTLS, but Emacs does not have support for it")) + (concat "Emacs does not support TLS, and no external `" + (if starttls-use-gnutls + starttls-gnutls-program + starttls-program) + "' program was found"))) (delete-process stream) (setq stream nil)) ;; Return value: ------------------------------------------------------------ revno: 106091 committer: Chong Yidong branch nick: trunk timestamp: Sat 2011-10-15 12:38:45 -0400 message: * doc/emacs/display.texi (Scrolling): Tweak explanation of scroll direction. (View Mode): Add index entries. diff: === modified file 'doc/emacs/display.texi' --- doc/emacs/display.texi 2011-10-01 21:54:33 +0000 +++ doc/emacs/display.texi 2011-10-15 16:38:45 +0000 @@ -6,10 +6,10 @@ @node Display, Search, Registers, Top @chapter Controlling the Display - Since only part of a large buffer fits in the window, Emacs tries to -show a part that is likely to be interesting. Display-control -commands and variables allow you to specify which part of the text you -want to see, and how to display it. + Since only part of a large buffer fits in the window, Emacs has to +show only a part of it. This chapter describes commands and variables +that let you specify which part of the text you want to see, and how +the text is displayed. @menu * Scrolling:: Commands to move text up and down in a window. @@ -49,7 +49,14 @@ displayed in the window; equivalently, it moves the buffer text upwards relative to the window. Scrolling ``backward'' or ``down'' moves the displayed portion backwards, and moves the text downwards -relative to the window. +relative to the window. In Emacs, scrolling ``up'' or ``down'' refers +to the direction that the text moves in the window, @emph{not} the +direction that the window moves relative to the text; this terminology +was taken up by Emacs before the modern meaning of ``scrolling up'' +and ``scrolling down'' became widely adopted. Hence the strange +result that @key{PageDown} scrolls ``up'' in the Emacs sense. In this +manual, we refer to scrolling ``foward'' and ``backward'' where +possible, in order to minimize confusion. The portion of a buffer displayed in a window always contains point. If you move point past the bottom or top of the window, scrolling @@ -60,7 +67,7 @@ @item C-l Scroll the selected window so that the current line is the center-most text line; on subsequent consecutive invocations, make the current -line the top-most line, the bottom-most line, and so forth in cyclic +line the top-most line, the bottom-most line, and so on in cyclic order; also, maybe redisplay the screen (@code{recenter-top-bottom}). @item C-v @itemx @key{next} @@ -85,29 +92,29 @@ Typing @kbd{C-l} twice in a row (@kbd{C-l C-l}) scrolls the window so that point is on the topmost screen line. Typing a third @kbd{C-l} scrolls the window so that point is on the bottom-most screen line. -Each successive @kbd{C-l} cycles through these three screen positions. +Each successive @kbd{C-l} cycles through these three positions. @vindex recenter-positions You can change the cycling order by customizing the list variable @code{recenter-positions}. Each list element should be the symbol @code{top}, @code{middle}, or @code{bottom}, or a number; an integer -number means to move the line to the specified screen line, while a +means to move the line to the specified screen line, while a floating-point number between 0.0 and 1.0 specifies a percentage of -the screen space from the top. The default, @code{(middle top -bottom)}, is the cycling order described above. Furthermore, if you -change the variable @code{scroll-margin} to a non-zero value @var{n}, -@kbd{C-l} leaves @var{n} screen lines between point and the top or -bottom of the window (@pxref{Auto Scrolling}). +the screen space from the top of the window. The default, +@code{(middle top bottom)}, is the cycling order described above. +Furthermore, if you change the variable @code{scroll-margin} to a +non-zero value @var{n}, @kbd{C-l} always leaves at least @var{n} +screen lines between point and the top or bottom of the window +(@pxref{Auto Scrolling}). You can also supply @kbd{C-l} with a prefix argument. With a plain prefix argument, @kbd{C-u C-l}, Emacs simply recenters point. With a positive argument @var{n}, it scrolls to place point @var{n} lines down from the top of the window. An argument of zero puts point on the topmost line. A negative argument @var{-n} puts point @var{n} -lines from the bottom of the window. For example, @kbd{C-u - 1 C-l} -puts point on the bottom line, and @kbd{C-u - 5 C-l} puts it five -lines from the bottom. When given an argument, @kbd{C-l} does not -clear the screen or cycle through different screen positions. +lines from the bottom of the window. When given an argument, +@kbd{C-l} does not clear the screen or cycle through different screen +positions. @vindex recenter-redisplay If the variable @code{recenter-redisplay} has a non-@code{nil} @@ -117,7 +124,7 @@ becomes garbled for any reason (@pxref{Screen Garbled}). @findex recenter - The more primitive command @code{recenter} behaves like + The more primitive command @kbd{M-x recenter} behaves like @code{recenter-top-bottom}, but does not cycle among screen positions. @kindex C-v @@ -128,53 +135,46 @@ @kindex PageUp @findex scroll-up-command @findex scroll-down-command - The @kbd{C-v} (@code{scroll-up-command}) command scrolls forward by -nearly the whole window height. The effect is to take the two lines -at the bottom of the window and put them at the top, followed by lines -that were not previously visible. If point was in the text that -scrolled off the top, it ends up at the new top of the window. + @kbd{C-v} (@code{scroll-up-command}) scrolls forward by nearly the +whole window height. The effect is to take the two lines at the +bottom of the window and put them at the top, followed by lines that +were not previously visible. If point was in the text that scrolled +off the top, it ends up on the window's new topmost line. Similarly, @kbd{M-v} (@code{scroll-down-command}) scrolls backward. + We refer to @kbd{C-v} and @kbd{M-v} as @dfn{full-screen scroll +commands}. The function key @key{next}, or @key{PageDown}, is +equivalent to @kbd{C-v}; the function key @key{prior}, or +@key{PageUp}, is equivalent to @kbd{M-v}. + @vindex next-screen-context-lines The variable @code{next-screen-context-lines} controls the number of -lines of overlap left by @kbd{C-v} or @kbd{M-v}; by default, it is 2. -The function keys @key{next} and @key{prior}, or @key{PageDown} and -@key{PageUp}, are equivalent to @kbd{C-v} and @kbd{M-v} respectively. - - You can supply @kbd{C-v} or @kbd{M-v} with a numeric prefix argument +lines of overlap left by the full-screen scroll commands; by default, +it is 2. You can supply these commands with a numeric prefix argument @var{n}. This scrolls the window by @var{n} lines, while attempting to leave point unchanged (so that the text and point move up or down together). @kbd{C-v} with a negative argument is like @kbd{M-v} and vice versa. - The names of scroll commands are based on the direction that the -text moves in the window. For instance, @code{scroll-up-command} -moves the text upward on the screen. The keys @key{PageUp} and -@key{PageDown} derive their names and customary meanings from a -different convention that developed elsewhere; hence the strange -result that @key{PageDown} runs @code{scroll-up-command}. +@vindex scroll-error-top-bottom + By default, the full-screen scroll commands signal an error (by +beeping or flashing the screen) if no more scrolling is possible, +because the window has reached the beginning or end of the buffer. If +you change the variable @code{scroll-error-top-bottom} to @code{t}, +Emacs instead moves point to the farthest possible position. If point +is already there, the command signals an error. @vindex scroll-preserve-screen-position - Some users like the full-screen scroll commands to keep point at the -same screen position. This behavior is convenient because scrolling -back to the same screen also returns point to its original position. -You can enable this via the variable -@code{scroll-preserve-screen-position}. If the value is @code{t}, -Emacs adjusts point to keep it at the same vertical position within -the window, rather than the window edge, whenever a scroll command -moves it off the window. With any other non-@code{nil} value, Emacs -adjusts point this way even if the scroll command leaves point in the -window. - -@vindex scroll-error-top-bottom - By default, @code{scroll-up-command} and @code{scroll-down-command} -signal an error (by beeping or flashing the screen) if no more -scrolling is possible, because the window has reached the beginning or -end of the buffer. If you change the variable -@code{scroll-error-top-bottom} to @code{t}, Emacs instead moves point -to the farthest possible position. If point is already there, the -command signals an error. + Some users like scroll commands to keep point at the same screen +position. Then, scrolling back to the same screen also conveniently +returns point to its original position. You can enable this via the +variable @code{scroll-preserve-screen-position}. If the value is +@code{t}, Emacs adjusts point to keep it at the same vertical position +within the window, rather than the window edge, whenever a scroll +command moves it off the window. With any other non-@code{nil} value, +Emacs adjusts point this way even if the scroll command leaves point +in the window. @vindex scroll-up @vindex scroll-down @@ -185,9 +185,9 @@ @kindex C-M-l @findex reposition-window - The @kbd{C-M-l} command (@code{reposition-window}) scrolls the current -window heuristically in a way designed to get useful information onto -the screen. For example, in a Lisp file, this command tries to get the + @kbd{C-M-l} (@code{reposition-window}) scrolls the current window +heuristically in a way designed to get useful information onto the +screen. For example, in a Lisp file, this command tries to get the entire current defun onto the screen if possible. @node Auto Scrolling @@ -225,16 +225,15 @@ The value of @code{scroll-up-aggressively} should be either @code{nil}, or a fraction @var{f} between 0 and 1. A fraction specifies where on the screen to put point when scrolling upward, -i.e.@: when point moves forward in the buffer, and therefore text -scrolls up in the window. When point goes off the window end, the new -start position is chosen to put point @var{f} parts of the window -height from the bottom. Thus, larger @var{f} means more aggressive +i.e. forward. When point goes off the window end, the new start +position is chosen to put point @var{f} parts of the window height +from the bottom. Thus, larger @var{f} means more aggressive scrolling: more new text is brought into view. The default value, @code{nil}, is equivalent to 0.5. Likewise, @code{scroll-down-aggressively} is used for scrolling -down, i.e.@: moving point back in the buffer. The value specifies how -far point should be placed from the top of the window; thus, as with +down, i.e. backward. The value specifies how far point should be +placed from the top of the window; thus, as with @code{scroll-up-aggressively}, a larger value is more aggressive. These two variables are ignored if either @code{scroll-step} or @@ -261,7 +260,7 @@ screen. To disable automatic horizontal scrolling, set the variable @code{auto-hscroll-mode} to @code{nil}. Note that when the automatic horizontal scrolling is turned off, if point moves off the edge of the -screen, the cursor disappears to indicate that. (On text-mode +screen, the cursor disappears to indicate that. (On text-only terminals, the cursor is left at the edge instead.) @vindex hscroll-margin @@ -389,6 +388,9 @@ @cindex View mode @cindex mode, View +@kindex s @r{(View mode)} +@kindex SPC @r{(View mode)} +@kindex DEL @r{(View mode)} View mode is a minor mode that lets you scan a buffer by sequential screenfuls. It provides commands for scrolling through the buffer conveniently but not for changing it. Apart from the usual Emacs @@ -396,9 +398,14 @@ windowful, @key{DEL} to scroll backward, and @kbd{s} to start an incremental search. - Typing @kbd{q} disables View mode, and switches back to the buffer -and position before View mode was enabled. Alternatively, typing -@kbd{e} disables View mode, keeping the current buffer and position. +@kindex q @r{(View mode)} +@kindex e @r{(View mode)} +@findex View-quit +@findex View-exit + Typing @kbd{q} (@code{View-quit}) disables View mode, and switches +back to the buffer and position before View mode was enabled. Typing +@kbd{e} (@code{View-exit}) disables View mode, keeping the current +buffer and position. @findex view-buffer @findex view-file ------------------------------------------------------------ revno: 106090 committer: Chong Yidong branch nick: trunk timestamp: Sat 2011-10-15 12:37:45 -0400 message: Two minor manual updates. * doc/emacs/killing.texi (Deletion): Document negative prefix arg to M-SPC. * doc/emacs/regs.texi (Text Registers): C-x r i does not activate the mark. (Bookmarks): Document new default bookmark location. diff: === modified file 'admin/FOR-RELEASE' --- admin/FOR-RELEASE 2011-10-07 16:22:04 +0000 +++ admin/FOR-RELEASE 2011-10-15 16:37:45 +0000 @@ -152,7 +152,7 @@ ack.texi anti.texi arevert-xtra.texi -basic.texi +basic.texi cyd buffers.texi building.texi calendar.texi @@ -172,23 +172,23 @@ fortran-xtra.texi frames.texi glossary.texi -help.texi +help.texi cyd indent.texi -killing.texi +killing.texi cyd kmacro.texi macos.texi maintaining.texi major.texi -mark.texi +mark.texi cyd mini.texi misc.texi msdog.texi msdog-xtra.texi mule.texi -m-x.texi +m-x.texi cyd picture-xtra.texi programs.texi -regs.texi +regs.texi cyd rmail.texi screen.texi cyd search.texi === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2011-10-13 16:03:49 +0000 +++ doc/emacs/ChangeLog 2011-10-15 16:37:45 +0000 @@ -1,3 +1,13 @@ +2011-10-15 Chong Yidong + + * display.texi (Scrolling): Tweak explanation of scroll direction. + (View Mode): Add index entries. + + * killing.texi (Deletion): Document negative prefix arg to M-SPC. + + * regs.texi (Text Registers): C-x r i does not activate the mark. + (Bookmarks): Document new default bookmark location. + 2011-10-13 Chong Yidong * killing.texi (Deletion): Add xref to Using Region. Document === modified file 'doc/emacs/killing.texi' --- doc/emacs/killing.texi 2011-10-13 16:03:49 +0000 +++ doc/emacs/killing.texi 2011-10-15 16:37:45 +0000 @@ -118,10 +118,12 @@ (@code{delete-horizontal-space}) deletes all the spaces and tab characters before and after point. With a prefix argument, this only deletes spaces and tab characters before point. @kbd{M-@key{SPC}} -(@code{just-one-space}) does likewise but leaves a single space after +(@code{just-one-space}) does likewise but leaves a single space before point, regardless of the number of spaces that existed previously (even if there were none before). With a numeric argument @var{n}, it -leaves @var{n} spaces after point. +leaves @var{n} spaces before point if @var{n} is positive; if @var{n} +is negative, it deletes newlines in addition to spaces and tabs, +leaving a single space before point. @kbd{C-x C-o} (@code{delete-blank-lines}) deletes all blank lines after the current line. If the current line is blank, it deletes all === modified file 'doc/emacs/regs.texi' --- doc/emacs/regs.texi 2011-07-11 15:41:41 +0000 +++ doc/emacs/regs.texi 2011-10-15 16:37:45 +0000 @@ -30,9 +30,9 @@ @end table @dfn{Bookmarks} record files and positions in them, so you can -return to those positions when you look at the file again. -Bookmarks are similar enough in spirit to registers that they -seem to belong in this chapter. +return to those positions when you look at the file again. Bookmarks +are similar in spirit to registers, so they are also documented in +this chapter. @menu * Position Registers:: Saving positions in registers. @@ -119,9 +119,9 @@ @kindex C-x r i @findex insert-register @kbd{C-x r i @var{r}} inserts in the buffer the text from register -@var{r}. Normally it leaves point before the text and places the mark -after, but with a numeric argument (@kbd{C-u}) it puts point after the -text and the mark before. +@var{r}. Normally it leaves point before the text and sets the mark +after, without activating it. With a numeric argument, it instead +puts point after the text and the mark before. @node Rectangle Registers @section Saving Rectangles in Registers @@ -143,12 +143,9 @@ rectangle) (@code{insert-register}). @end table - The @kbd{C-x r i @var{r}} command inserts a text string if the -register contains one, and inserts a rectangle if the register contains -one. - - See also the command @code{sort-columns}, which you can think of -as sorting a rectangle. @xref{Sorting}. + The @kbd{C-x r i @var{r}} (@code{insert-register}) command, +previously documented in @ref{Text Registers}, inserts a rectangle +rather than a a text string, if the register contains a rectangle. @node Configuration Registers @section Saving Window Configurations in Registers @@ -281,12 +278,14 @@ bookmarks. Type @kbd{C-h m} in the bookmark buffer for more information about its special editing commands. - When you kill Emacs, Emacs offers to save your bookmark values in your -default bookmark file, @file{~/.emacs.bmk}, if you have changed any -bookmark values. You can also save the bookmarks at any time with the -@kbd{M-x bookmark-save} command. The bookmark commands load your -default bookmark file automatically. This saving and loading is how -bookmarks persist from one Emacs session to the next. + When you kill Emacs, Emacs offers to save your bookmark values, if +you have changed any bookmark values. You can also save the bookmarks +at any time with the @kbd{M-x bookmark-save} command. Bookmarks are +saved to the file @file{~/.emacs.d/bookmarks} (for compatibility with +older versions of Emacs, if you have a file named @file{~/.emacs.bmk}, +that is used instead). The bookmark commands load your default +bookmark file automatically. This saving and loading is how bookmarks +persist from one Emacs session to the next. @vindex bookmark-save-flag If you set the variable @code{bookmark-save-flag} to 1, each command === modified file 'etc/NEWS' --- etc/NEWS 2011-10-13 16:03:49 +0000 +++ etc/NEWS 2011-10-15 16:37:45 +0000 @@ -251,6 +251,7 @@ with Xft. To change font, use the X resource font, for example: Emacs.pane.menubar.font: Courier-12 ++++ ** On graphical displays, the mode-line no longer ends in dashes. Also, the first dash (which does not indicate anything) is just displayed as a space. @@ -455,6 +456,7 @@ ** The default value of `backup-by-copying-when-mismatch' is now t. ++++ ** The command `just-one-space' (M-SPC), if given a negative argument, also deletes newlines around point. ------------------------------------------------------------ revno: 106089 committer: Chong Yidong branch nick: trunk timestamp: Sat 2011-10-15 12:35:19 -0400 message: * lisp/mail/sendmail.el (sendmail-query-once): Tweak prompt message putting the argument choices in front and in bold. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-10-14 18:39:16 +0000 +++ lisp/ChangeLog 2011-10-15 16:35:19 +0000 @@ -1,3 +1,8 @@ +2011-10-15 Chong Yidong + + * mail/sendmail.el (sendmail-query-once): Tweak prompt message, + putting the input text in front and in bold. + 2011-10-14 Stefan Monnier * pcmpl-unix.el (pcomplete/ssh): SSH does allow ganging. === modified file 'lisp/mail/sendmail.el' --- lisp/mail/sendmail.el 2011-10-14 13:49:32 +0000 +++ lisp/mail/sendmail.el 2011-10-15 16:35:19 +0000 @@ -513,34 +513,40 @@ ;; a second time, probably because someone's using an old value ;; of send-mail-function. (when (eq send-mail-function 'sendmail-query-once) - (let* ((options `(("Mail client" . mailclient-send-it) + (let* ((options `(("mail client" . mailclient-send-it) ,@(when (and sendmail-program (executable-find sendmail-program)) - '(("Mail transport agent" . sendmail-send-it))) - ("SMTP server" . smtpmail-send-it))) + '(("transport" . sendmail-send-it))) + ("smtp" . smtpmail-send-it))) (choice ;; Query the user. (with-temp-buffer (rename-buffer "*Emacs Mail Setup Help*" t) (insert "\ - Emacs is about to send an email message. However, it was not configured - for sending email. You can instruct Emacs to send email in one of the - following ways: + Emacs is about to send an email message, but it has not been + configured for sending email. To tell Emacs how to send email: - - Start your default mail client and pass to it the message text. - Type \"Mail client\" at the prompt below to select this option.\n\n") - (if (and sendmail-program - (executable-find sendmail-program)) - (insert "\ - - Invoke the system's mail transport agent (\"sendmail\"). - Type \"Mail transport agent\" at the prompt below to select this option.\n\n")) + - Type `" + (propertize "mail client" 'face 'bold) + "' to start your default email client and + pass it the message text.\n\n") + (and sendmail-program + (executable-find sendmail-program) + (insert "\ + - Type `" + (propertize "transport" 'face 'bold) + "' to invoke the system's mail transport agent + (the `" + sendmail-program + "' program).\n\n")) (insert "\ - - Send mail directly by communicating with your mail server - (this requires setting up SMTP parameters). - Type \"SMTP server\" at the prompt below to select this option. + - Type `" + (propertize "smtp" 'face 'bold) + "' to send mail directly to an \"outgoing mail\" server. + (Emacs may prompt you for SMTP settings). - Emacs will record your selection and will use it thereafter. To change - your selection later, customize the option `send-mail-function'.\n") + Emacs will record your selection and will use it thereafter. + To change it later, customize the option `send-mail-function'.\n") (goto-char (point-min)) (display-buffer (current-buffer)) (let ((completion-ignore-case t)) ------------------------------------------------------------ revno: 106088 committer: martin rudalics branch nick: trunk timestamp: Sat 2011-10-15 12:12:00 +0200 message: Rewrite and delabelize vertical border check. (Bug#5357) (Bug#9618) * window.c (coordinates_in_window): Rewrite and delabelize vertical border check. (Bug#5357) (Bug#9618) diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-10-14 17:44:39 +0000 +++ src/ChangeLog 2011-10-15 10:12:00 +0000 @@ -1,3 +1,8 @@ +2011-10-15 Martin Rudalics + + * window.c (coordinates_in_window): Rewrite and delabelize + vertical border check. (Bug#5357) (Bug#9618) + 2011-10-14 Stefan Monnier * xterm.c (frame_highlight, frame_unhighlight): Ignore unexplained === modified file 'src/window.c' --- src/window.c 2011-09-24 22:51:36 +0000 +++ src/window.c 2011-10-15 10:12:00 +0000 @@ -919,22 +919,45 @@ coordinates_in_window (register struct window *w, int x, int y) { struct frame *f = XFRAME (WINDOW_FRAME (w)); - int left_x, right_x; enum window_part part; int ux = FRAME_COLUMN_WIDTH (f); - int x0 = WINDOW_LEFT_EDGE_X (w); - int x1 = WINDOW_RIGHT_EDGE_X (w); + int left_x = WINDOW_LEFT_EDGE_X (w); + int right_x = WINDOW_RIGHT_EDGE_X (w); + int top_y = WINDOW_TOP_EDGE_Y (w); + int bottom_y = WINDOW_BOTTOM_EDGE_Y (w); /* The width of the area where the vertical line can be dragged. (Between mode lines for instance. */ int grabbable_width = ux; int lmargin_width, rmargin_width, text_left, text_right; - int top_y = WINDOW_TOP_EDGE_Y (w); - int bottom_y = WINDOW_BOTTOM_EDGE_Y (w); - /* Outside any interesting row? */ - if (y < top_y || y >= bottom_y) + /* Outside any interesting row or column? */ + if (y < top_y || y >= bottom_y || x < left_x || x >= right_x) return ON_NOTHING; + /* On the mode line or header line? */ + if ((WINDOW_WANTS_MODELINE_P (w) + && y >= bottom_y - CURRENT_MODE_LINE_HEIGHT (w) + && (part = ON_MODE_LINE)) + || (WINDOW_WANTS_HEADER_LINE_P (w) + && y < top_y + CURRENT_HEADER_LINE_HEIGHT (w) + && (part = ON_HEADER_LINE))) + { + /* If it's under/over the scroll bar portion of the mode/header + line, say it's on the vertical line. That's to be able to + resize windows horizontally in case we're using toolkit scroll + bars. Note: If scrollbars are on the left, the window that + must be eventually resized is that on the left of WINDOW. */ + if ((WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) + && !WINDOW_LEFTMOST_P (w) + && eabs (x - left_x) < grabbable_width) + || (!WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) + && !WINDOW_RIGHTMOST_P (w) + && eabs (x - right_x) < grabbable_width)) + return ON_VERTICAL_BORDER; + else + return part; + } + /* In what's below, we subtract 1 when computing right_x because we want the rightmost pixel, which is given by left_pixel+width-1. */ if (w->pseudo_window_p) @@ -948,50 +971,6 @@ right_x = WINDOW_BOX_RIGHT_EDGE_X (w) - 1; } - /* On the mode line or header line? If it's near the start of - the mode or header line of window that's has a horizontal - sibling, say it's on the vertical line. That's to be able - to resize windows horizontally in case we're using toolkit - scroll bars. */ - - if (WINDOW_WANTS_MODELINE_P (w) - && y >= bottom_y - CURRENT_MODE_LINE_HEIGHT (w)) - { - part = ON_MODE_LINE; - - header_vertical_border_check: - /* We're somewhere on the mode line. We consider the place - between mode lines of horizontally adjacent mode lines - as the vertical border. If scroll bars on the left, - return the right window. */ - if ((WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (w) - || WINDOW_RIGHTMOST_P (w)) - && !WINDOW_LEFTMOST_P (w) - && eabs (x - x0) < grabbable_width) - return ON_VERTICAL_BORDER; - - /* Make sure we're not at the rightmost position of a - mode-/header-line and there's yet another window on the - right. (Bug#1372) */ - else if ((WINDOW_RIGHTMOST_P (w) || x < x1) - && eabs (x - x1) < grabbable_width) - return ON_VERTICAL_BORDER; - - if (x < x0 || x >= x1) - return ON_NOTHING; - - return part; - } - - if (WINDOW_WANTS_HEADER_LINE_P (w) - && y < top_y + CURRENT_HEADER_LINE_HEIGHT (w)) - { - part = ON_HEADER_LINE; - goto header_vertical_border_check; - } - - if (x < x0 || x >= x1) return ON_NOTHING; - /* Outside any interesting column? */ if (x < left_x || x > right_x) return ON_SCROLL_BAR;