Now on revision 106642. ------------------------------------------------------------ revno: 106642 [merge] committer: Kenichi Handa branch nick: trunk timestamp: Fri 2011-12-09 14:24:51 +0900 message: Add a bug number to a ChangeLog entry. diff: === modified file 'src/ChangeLog' --- src/ChangeLog 2011-12-08 05:54:20 +0000 +++ src/ChangeLog 2011-12-09 05:24:26 +0000 @@ -1,7 +1,7 @@ 2011-12-08 Kazuhiro Ito (tiny change) * coding.c (encode_coding_ccl): Check (charbuf < charbuf_end) - after the loop to call ccl_driver at least once. + after the loop to call ccl_driver at least once (Bug#8619). 2011-12-08 Kenichi Handa ------------------------------------------------------------ revno: 106641 committer: Juanma Barranquero branch nick: trunk timestamp: Fri 2011-12-09 04:12:38 +0100 message: Fix typos. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-08 13:23:43 +0000 +++ lisp/ChangeLog 2011-12-09 03:12:38 +0000 @@ -1,3 +1,24 @@ +2011-12-09 Juanma Barranquero + + * printing.el (pr-mode-alist): + * simple.el (filter-buffer-substring-functions) + (completion-list-insert-choice-function): + * window.el (window-with-parameter, window-atom-root) + (window-sides-slots, window-size-fixed, window-min-delta) + (window-max-delta, window--resize-mini-window) + (window--resize-child-windows-normal, window-tree) + (delete-other-windows, quit-window, split-window) + (display-buffer-record-window, special-display-buffer-names) + (special-display-regexps, special-display-popup-frame) + (same-window-p, split-window-sensibly) + (display-buffer-overriding-action, display-buffer-alist) + (display-buffer-base-action, display-buffer, switch-to-buffer) + (switch-to-buffer-other-window, switch-to-buffer-other-frame) + (fit-window-to-buffer, recenter-positions) + (mouse-autoselect-window-state, mouse-autoselect-window-select): + * emacs-lisp/syntax.el (syntax-propertize-function): Fix typos + and remove unneeded backslashes in docstrings. + 2011-12-08 Stefan Monnier * emacs-lisp/lisp-mode.el (defmethod): Add doc-string-elt (bug#10244). @@ -172,11 +193,11 @@ (verilog-inject-sense, verilog-read-inst-pins) (verilog-read-sub-decls, verilog-read-sub-decls-line): Fix mismatching parenthesis inside commented out code when deleting - AUTOINST, bug383. Reported by Jonathan Greenlaw. + AUTOINST, bug383. Reported by Jonathan Greenlaw. (verilog-auto-ascii-enum): Fix AUTOASCIIENUM one-hot with non-numeric vector width. Reported by Alex Reed. (verilog-auto-ascii-enum): Add "onehot" option to work around not - detecting signals with parameter widths. Reported by Alex Reed. + detecting signals with parameter widths. Reported by Alex Reed. (verilog-auto-delete-trailing-whitespace): With `verilog-auto-delete-trailing-whitespace' remove trailing whitespace in auto expansion, bug371. Reported by Brad Dobbie. === modified file 'lisp/ChangeLog.9' --- lisp/ChangeLog.9 2011-11-24 01:58:14 +0000 +++ lisp/ChangeLog.9 2011-12-09 03:12:38 +0000 @@ -6620,7 +6620,7 @@ (ansi-color-process-output): New function. It is automatically added to comint-output-filter-functions if this is XEmacs. (ansi-color-unfontify-region): New optional parameter for XEmacs - compatibility. Check wether font-lock-syntactic-keywords is + compatibility. Check whether font-lock-syntactic-keywords is boundp before removing the syntax table text property, as XEmacs doesn't have it. (ansi-color-filter-region): Doc change. === modified file 'lisp/emacs-lisp/syntax.el' --- lisp/emacs-lisp/syntax.el 2011-07-15 13:55:00 +0000 +++ lisp/emacs-lisp/syntax.el 2011-12-09 03:12:38 +0000 @@ -56,7 +56,7 @@ ;; syntax-ppss-flush-cache since that would not only flush the cache but also ;; reset syntax-propertize--done which should not be done in this case). "Mode-specific function to apply the syntax-table properties. -Called with 2 arguments: START and END. +Called with two arguments: START and END. This function can call `syntax-ppss' on any position before END, but it should not call `syntax-ppss-flush-cache', which means that it should not call `syntax-ppss' on some position and later modify the buffer on some @@ -248,7 +248,7 @@ (if syntax (put-text-property mb me 'syntax-table syntax)))))))) - + (if (or (not (cddr rule)) (zerop gn)) (setq code (nconc (nreverse thiscode) code)) (push `(if (match-beginning ,gn) === modified file 'lisp/erc/ChangeLog.02' --- lisp/erc/ChangeLog.02 2011-11-27 18:17:40 +0000 +++ lisp/erc/ChangeLog.02 2011-12-09 03:12:38 +0000 @@ -75,7 +75,7 @@ everything but the last character. * erc.el 1.395 (erc-send-current-line): - Check wether point is in the input line. If + Check whether point is in the input line. If not, just beep and do nothing. 2002-12-28 Alex Schroeder @@ -98,7 +98,7 @@ 2002-12-28 Jorgen Schaefer * erc.el 1.392 (erc-log-irc-protocol): - Removed check wether get-buffer-create + Removed check whether get-buffer-create returned nil. "The value is never nil", says the docstring. * erc.el 1.391: Day Of The Small Changes @@ -245,7 +245,7 @@ (erc-process-alive): Check erc-process for boundp and processp. * erc.el 1.374 (erc-kill-buffer-function): - Do not check wether the process is + Do not check whether the process is alive before running the hook, because there might be functions on the hook that need to run even when the process is dead. And function that wants to check this, should use (erc-process-alive). @@ -1037,7 +1037,7 @@ * (erc-away-p): new function erc-fill.el: - * (erc-fill-variable): Check wether erc-timestamp-format is bound before + * (erc-fill-variable): Check whether erc-timestamp-format is bound before using it (erc-fill.el does not require erc-stamp). 2002-11-10 Alex Schroeder === modified file 'lisp/erc/ChangeLog.03' --- lisp/erc/ChangeLog.03 2011-11-20 03:48:53 +0000 +++ lisp/erc/ChangeLog.03 2011-12-09 03:12:38 +0000 @@ -693,10 +693,10 @@ 2003-04-29 Jorgen Schaefer * erc.el 1.525 (erc): - Check wether erc-save-buffer-in-logs is bound, too + Check whether erc-save-buffer-in-logs is bound, too * erc.el 1.524 (erc): - Check wether erc-logging-enabled is bound before using it - not + Check whether erc-logging-enabled is bound before using it - not everyone is using erc-log.el! 2003-04-28 Andreas Fuchs @@ -1166,7 +1166,7 @@ (erc-person): Call erc-downcase before getting something from the hash. - (erc-nick-in-channel): Checking wether erc-process must be used is + (erc-nick-in-channel): Checking whether erc-process must be used is unnecessary -- this will be done in erc-person. (erc-nick-channels): New. (erc-add-nick-to-channel, erc-update-member): Call erc-downcase @@ -1678,7 +1678,7 @@ 2003-01-11 Jorgen Schaefer * erc-stamp.el 1.22 (erc-insert-timestamp-right): - Check wether erc-fill-column is + Check whether erc-fill-column is available before using it. Else default to fill-column or if everything else fails, the window width of the current window. For the fill-columns, use them directly as the starting position for the === modified file 'lisp/printing.el' --- lisp/printing.el 2011-11-25 07:14:48 +0000 +++ lisp/printing.el 2011-12-09 03:12:38 +0000 @@ -2536,7 +2536,7 @@ nil, it's used (point-max). PS-PRINT It's a symbol function for PostScript printing. It's invoked - with 3 arguments: n-up printing, file name and the list: + with three arguments: n-up printing, file name and the list: (HEADER-LINES LEFT-HEADER RIGHT-HEADER DEFAULT...). Usually PS-PRINT function prepares the environment or buffer === modified file 'lisp/simple.el' --- lisp/simple.el 2011-12-05 17:46:27 +0000 +++ lisp/simple.el 2011-12-09 03:12:38 +0000 @@ -2915,11 +2915,11 @@ (defvar filter-buffer-substring-functions nil "Wrapper hook around `filter-buffer-substring'. -The functions on this special hook are called with 4 arguments: +The functions on this special hook are called with four arguments: NEXT-FUN BEG END DELETE -NEXT-FUN is a function of 3 arguments (BEG END DELETE) -that performs the default operation. The other 3 arguments are like -the ones passed to `filter-buffer-substring'.") +NEXT-FUN is a function of three arguments (BEG END DELETE) +that performs the default operation. The other three arguments +are like the ones passed to `filter-buffer-substring'.") (defvar buffer-substring-filters nil "List of filter functions for `filter-buffer-substring'. @@ -6023,7 +6023,7 @@ (defvar completion-list-insert-choice-function #'completion--replace "Function to use to insert the text chosen in *Completions*. -Called with 3 arguments (BEG END TEXT), it should replace the text +Called with three arguments (BEG END TEXT), it should replace the text between BEG and END with TEXT. Expected to be set buffer-locally in the *Completions* buffer.") === modified file 'lisp/window.el' --- lisp/window.el 2011-12-04 08:02:42 +0000 +++ lisp/window.el 2011-12-09 03:12:38 +0000 @@ -296,7 +296,7 @@ "Return first window on FRAME with PARAMETER non-nil. FRAME defaults to the selected frame. Optional argument VALUE non-nil means only return a window whose window-parameter value -for PARAMETER equals VALUE \(comparison is done with `equal'). +for PARAMETER equals VALUE (comparison is done with `equal'). Optional argument ANY non-nil means consider internal windows too." (let (this-value windows) @@ -312,7 +312,7 @@ (defun window-atom-root (&optional window) "Return root of atomic window WINDOW is a part of. WINDOW can be any window and defaults to the selected one. -Return nil if WINDOW is not part of a atomic window." +Return nil if WINDOW is not part of an atomic window." (setq window (window-normalize-window window)) (let (root) (while (and window (window-parameter window 'window-atom)) @@ -380,7 +380,7 @@ (defcustom window-sides-slots '(nil nil nil nil) "Maximum number of side window slots. The value is a list of four elements specifying the number of -side window slots on \(in this order) the left, top, right and +side window slots on (in this order) the left, top, right and bottom side of each frame. If an element is a number, this means to display at most that many side windows on the corresponding side. If an element is nil, this means there's no bound on the @@ -504,7 +504,7 @@ Any other non-nil value fixes both the width and the height. Emacs won't change the size of any window displaying that buffer, -unless it has no other choice \(like when deleting a neighboring +unless it has no other choice (like when deleting a neighboring window).") (make-variable-buffer-local 'window-size-fixed) @@ -749,7 +749,7 @@ tree but try to enlarge windows within WINDOW's combination only. Optional argument NODOWN non-nil means don't check whether WINDOW -itself \(and its child windows) can be shrunk; check only whether +itself (and its child windows) can be shrunk; check only whether at least one other window can be enlarged appropriately." (setq window (window-normalize-window window)) (let ((size (window-total-size window horizontal)) @@ -831,7 +831,7 @@ WINDOW's combination. Optional argument NODOWN non-nil means do not check whether -WINDOW itself \(and its child windows) can be enlarged; check +WINDOW itself (and its child windows) can be enlarged; check only whether other windows can be shrunk appropriately." (setq window (window-normalize-window window)) (if (and (not (window--size-ignore window ignore)) @@ -1418,7 +1418,7 @@ ;; window and is currently used, for example, by ispell.el. (defun window--resize-mini-window (window delta) "Resize minibuffer window WINDOW by DELTA lines. -If WINDOW cannot be resized by DELTA lines make it as large \(or +If WINDOW cannot be resized by DELTA lines make it as large (or as small) as possible but don't signal an error." (when (window-minibuffer-p window) (let* ((frame (window-frame window)) @@ -1513,12 +1513,12 @@ "Recursively set new normal height of child windows of window PARENT. HORIZONTAL non-nil means set the new normal width of these windows. WINDOW specifies a child window of PARENT that has been -resized by THIS-DELTA lines \(columns). +resized by THIS-DELTA lines (columns). Optional argument TRAIL either 'before or 'after means set values for windows before or after WINDOW only. Optional argument -OTHER-DELTA a number specifies that this many lines \(columns) -have been obtained from \(or returned to) an ancestor window of +OTHER-DELTA a number specifies that this many lines (columns) +have been obtained from (or returned to) an ancestor window of PARENT in order to resize WINDOW." (let* ((delta-normal (if (and (= (- this-delta) (window-total-size window horizontal)) @@ -2190,7 +2190,7 @@ the combined size and position of the child windows in the split, and the rest of the elements are the child windows in the split. Each of the child windows may again be a window or a list -representing a window split, and so on. EDGES is a list \(LEFT +representing a window split, and so on. EDGES is a list (LEFT TOP RIGHT BOTTOM) as returned by `window-edges'." (setq frame (window-normalize-frame frame)) (window--subtree (frame-root-window frame) t)) @@ -2430,7 +2430,7 @@ Otherwise, if WINDOW is part of an atomic window, call this function with the root of the atomic window as its argument. If WINDOW is a non-side window, make WINDOW the only non-side window -on the frame. Side windows are not deleted. If WINDOW is a side +on the frame. Side windows are not deleted. If WINDOW is a side window signal an error." (interactive) (setq window (window-normalize-window window)) @@ -2938,9 +2938,9 @@ burying it. According to information stored in WINDOW's `quit-restore' window -parameter either \(1) delete WINDOW and its frame, \(2) delete -WINDOW, \(3) restore the buffer previously displayed in WINDOW, -or \(4) make WINDOW display some other buffer than the present +parameter either (1) delete WINDOW and its frame, (2) delete +WINDOW, (3) restore the buffer previously displayed in WINDOW, +or (4) make WINDOW display some other buffer than the present one. If non-nil, reset `quit-restore' parameter to nil." (interactive "P") (setq window (window-normalize-window window t)) @@ -3047,14 +3047,14 @@ Optional third argument SIDE nil (or `below') specifies that the new window shall be located below WINDOW. SIDE `above' means the new window shall be located above WINDOW. In both cases SIZE -specifies the new number of lines for WINDOW \(or the new window +specifies the new number of lines for WINDOW (or the new window if SIZE is negative) including space reserved for the mode and/or header line. SIDE t (or `right') specifies that the new window shall be located on the right side of WINDOW. SIDE `left' means the new window shall be located on the left of WINDOW. In both cases -SIZE specifies the new number of columns for WINDOW \(or the new +SIZE specifies the new number of columns for WINDOW (or the new window provided SIZE is negative) including space reserved for fringes and the scrollbar or a divider column. Any other non-nil value for SIDE is currently handled like t (or `right'). @@ -3870,10 +3870,10 @@ (defun display-buffer-record-window (type window buffer) "Record information for window used by `display-buffer'. TYPE specifies the type of the calling operation and must be one -of the symbols 'reuse \(when WINDOW existed already and was -reused for displaying BUFFER), 'window \(when WINDOW was created -on an already existing frame), or 'frame \(when WINDOW was -created on a new frame). WINDOW is the window used for or created +of the symbols 'reuse (when WINDOW existed already and was +reused for displaying BUFFER), 'window (when WINDOW was created +on an already existing frame), or 'frame (when WINDOW was +created on a new frame). WINDOW is the window used for or created by the `display-buffer' routines. BUFFER is the buffer that shall be displayed. @@ -3968,7 +3968,7 @@ Alternatively, an element of this list can be specified as \(BUFFER-NAME FRAME-PARAMETERS), where BUFFER-NAME is a buffer -name and FRAME-PARAMETERS an alist of \(PARAMETER . VALUE) pairs. +name and FRAME-PARAMETERS an alist of (PARAMETER . VALUE) pairs. `special-display-popup-frame' will interpret such pairs as frame parameters when it creates a special frame, overriding the corresponding values from `special-display-frame-alist'. @@ -4044,7 +4044,7 @@ As a special case, if FRAME-PARAMETERS contains (same-window . t) `special-display-popup-frame' displays buffers matching REGEXP in -the selected window. \(same-frame . t) in FRAME-PARAMETERS means +the selected window. (same-frame . t) in FRAME-PARAMETERS means to display such buffers in a window on the selected frame. If `special-display-function' specifies some other function than @@ -4139,8 +4139,8 @@ information. If ARGS is an alist, use it as a list of frame parameters. If -these parameters contain \(same-window . t), display BUFFER in -the selected window. If they contain \(same-frame . t), display +these parameters contain (same-window . t), display BUFFER in +the selected window. If they contain (same-frame . t), display BUFFER in a window of the selected frame. If ARGS is a list whose car is a symbol, use (car ARGS) as a @@ -4234,7 +4234,7 @@ "Return non-nil if a buffer named BUFFER-NAME would be shown in the \"same\" window. This function returns non-nil if `display-buffer' or `pop-to-buffer' would show a buffer named BUFFER-NAME in the -selected rather than \(as usual\) some other window. See +selected rather than (as usual) some other window. See `same-window-buffer-names' and `same-window-regexps'." (cond ((not (stringp buffer-name))) @@ -4396,11 +4396,11 @@ customize the option `split-window-preferred-function'. You can enforce this function to not split WINDOW horizontally, -by setting \(or binding) the variable `split-width-threshold' to +by setting (or binding) the variable `split-width-threshold' to nil. If, in addition, you set `split-height-threshold' to zero, chances increase that this function does split WINDOW vertically. -In order to not split WINDOW vertically, set \(or bind) the +In order to not split WINDOW vertically, set (or bind) the variable `split-height-threshold' to nil. Additionally, you can set `split-width-threshold' to zero to make a horizontal split more likely to occur. @@ -4565,7 +4565,7 @@ (defvar display-buffer-overriding-action '(nil . nil) "Overriding action to perform to display a buffer. It should be a cons cell (FUNCTION . ALIST), where FUNCTION is a -function or a list of functions. Each function should accept 2 +function or a list of functions. Each function should accept two arguments: a buffer to display and an alist similar to ALIST. See `display-buffer' for details.") (put 'display-buffer-overriding-action 'risky-local-variable t) @@ -4579,7 +4579,7 @@ ACTION is a cons cell (FUNCTION . ALIST), where FUNCTION is a function or a list of functions. Each such function should - accept 2 arguments: a buffer to display and an alist of the + accept two arguments: a buffer to display and an alist of the same form as ALIST. See `display-buffer' for details." :type `(alist :key-type (choice :tag "Condition" @@ -4593,7 +4593,7 @@ (defcustom display-buffer-base-action '(nil . nil) "User-specified default action for `display-buffer'. It should be a cons cell (FUNCTION . ALIST), where FUNCTION is a -function or a list of functions. Each function should accept 2 +function or a list of functions. Each function should accept two arguments: a buffer to display and an alist similar to ALIST. See `display-buffer' for details." :type display-buffer--action-custom-type @@ -4648,8 +4648,8 @@ Optional argument ACTION should have the form (FUNCTION . ALIST). FUNCTION is either a function or a list of functions. Each such -function is called with 2 arguments: the buffer to display and an -alist. It should either display the buffer and return the +function is called with two arguments: the buffer to display and +an alist. It should either display the buffer and return the window, or return nil if unable to display the buffer. The `display-buffer' function builds a function list and an alist @@ -4996,7 +4996,7 @@ determines whether to request confirmation before creating a new buffer. -BUFFER-OR-NAME may be a buffer, a string \(a buffer name), or +BUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil. If BUFFER-OR-NAME is a string that does not identify an existing buffer, create a buffer with that name. If BUFFER-OR-NAME is nil, switch to the buffer returned by @@ -5036,7 +5036,7 @@ (defun switch-to-buffer-other-window (buffer-or-name &optional norecord) "Select the buffer specified by BUFFER-OR-NAME in another window. -BUFFER-OR-NAME may be a buffer, a string \(a buffer name), or +BUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil. Return the buffer switched to. If called interactively, prompt for the buffer name using the @@ -5060,7 +5060,7 @@ (defun switch-to-buffer-other-frame (buffer-or-name &optional norecord) "Switch to buffer BUFFER-OR-NAME in another frame. -BUFFER-OR-NAME may be a buffer, a string \(a buffer name), or +BUFFER-OR-NAME may be a buffer, a string (a buffer name), or nil. Return the buffer switched to. If called interactively, prompt for the buffer name using the @@ -5169,7 +5169,7 @@ Optional argument MAX-HEIGHT specifies the maximum height of WINDOW and defaults to the height of WINDOW's frame. Optional argument MIN-HEIGHT specifies the minimum height of WINDOW and -defaults to `window-min-height'. Both, MAX-HEIGHT and MIN-HEIGHT +defaults to `window-min-height'. Both MAX-HEIGHT and MIN-HEIGHT are specified in lines and include the mode line and header line, if any. @@ -5332,7 +5332,7 @@ integer or float numbers that define the cycling order for the command `recenter-top-bottom'. -Top and bottom destinations are `scroll-margin' lines the from true +Top and bottom destinations are `scroll-margin' lines from the true window top and bottom. Middle redraws the frame and centers point vertically within the window. Integer number moves current line to the specified absolute window-line. Float number between 0.0 and 1.0 @@ -5571,9 +5571,9 @@ (defvar mouse-autoselect-window-state nil "When non-nil, special state of delayed window autoselection. -Possible values are `suspend' \(suspend autoselection after a menu or -scrollbar interaction\) and `select' \(the next invocation of -'handle-select-window' shall select the window immediately\).") +Possible values are `suspend' (suspend autoselection after a menu or +scrollbar interaction) and `select' (the next invocation of +`handle-select-window' shall select the window immediately).") (defun mouse-autoselect-window-cancel (&optional force) "Cancel delayed window autoselection. @@ -5610,8 +5610,8 @@ (defun mouse-autoselect-window-select () "Select window with delayed window autoselection. If the mouse position has stabilized in a non-selected window, select -that window. The minibuffer window is selected only if the minibuffer is -active. This function is run by `mouse-autoselect-window-timer'." +that window. The minibuffer window is selected only if the minibuffer +is active. This function is run by `mouse-autoselect-window-timer'." (ignore-errors (let* ((mouse-position (mouse-position)) (window ------------------------------------------------------------ revno: 106640 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10244 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-12-08 08:23:43 -0500 message: * lisp/emacs-lisp/lisp-mode.el (defmethod): Add doc-string-elt. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-08 13:20:20 +0000 +++ lisp/ChangeLog 2011-12-08 13:23:43 +0000 @@ -1,5 +1,7 @@ 2011-12-08 Stefan Monnier + * emacs-lisp/lisp-mode.el (defmethod): Add doc-string-elt (bug#10244). + * pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg. (pcmpl-gnu-makefile-regexps): Accept "makefile" as well as files that end in ".mk". === modified file 'lisp/emacs-lisp/lisp-mode.el' --- lisp/emacs-lisp/lisp-mode.el 2011-11-19 09:18:31 +0000 +++ lisp/emacs-lisp/lisp-mode.el 2011-12-08 13:23:43 +0000 @@ -131,6 +131,7 @@ (put 'autoload 'doc-string-elt 3) (put 'defun 'doc-string-elt 3) (put 'defun* 'doc-string-elt 3) +(put 'defmethod 'doc-string-elt 3) (put 'defvar 'doc-string-elt 3) (put 'defcustom 'doc-string-elt 3) (put 'deftheme 'doc-string-elt 2) ------------------------------------------------------------ revno: 106639 committer: Chong Yidong branch nick: trunk timestamp: Thu 2011-12-08 21:21:58 +0800 message: Updates to Building chapter of Emacs manual. * doc/emacs/building.texi (Compilation): Say what the -k flag to make does. Move subprocess discussion to Compilation Shell. (Compilation Mode): Add xref for grep, occur, and mouse references. Define "locus". (Grep Searching): Use @command. * doc/emacs/programs.texi (Symbol Completion): M-TAB can now use Semantic. (Semantic): Add cindex entries for Semantic. diff: === modified file 'doc/emacs/ChangeLog' --- doc/emacs/ChangeLog 2011-12-06 08:12:18 +0000 +++ doc/emacs/ChangeLog 2011-12-08 13:21:58 +0000 @@ -1,3 +1,14 @@ +2011-12-08 Chong Yidong + + * building.texi (Compilation): Say what the -k flag to make does. + Move subprocess discussion to Compilation Shell. + (Compilation Mode): Add xref for grep, occur, and mouse + references. Define "locus". + (Grep Searching): Use @command. + + * programs.texi (Symbol Completion): M-TAB can now use Semantic. + (Semantic): Add cindex entries for Semantic. + 2011-12-06 Chong Yidong * programs.texi (Man Page): Clarify how to use Man-switches. === modified file 'doc/emacs/building.texi' --- doc/emacs/building.texi 2011-11-27 04:43:11 +0000 +++ doc/emacs/building.texi 2011-12-08 13:21:58 +0000 @@ -8,9 +8,9 @@ @cindex program building @cindex running Lisp functions - The previous chapter discusses the Emacs commands that are useful for -making changes in programs. This chapter deals with commands that assist -in the larger process of compiling and testing programs. + The previous chapter discusses the Emacs commands that are useful +for making changes in programs. This chapter deals with commands that +assist in the process of compiling and testing programs. @menu * Compilation:: Compiling programs in languages other @@ -37,10 +37,10 @@ @cindex compilation errors @cindex error log - Emacs can run compilers for noninteractive languages such as C and -Fortran as inferior processes, feeding the error log into an Emacs buffer. -It can also parse the error messages and show you the source lines where -compilation errors occurred. + Emacs can run compilers for languages such as C and Fortran as +inferior processes, feeding the compilation log into an Emacs buffer. +It can also parse the error messages and show you where the errors +occurred. @table @kbd @item M-x compile @@ -54,65 +54,60 @@ @end table @findex compile - To run @code{make} or another compilation command, do @kbd{M-x -compile}. This command reads a shell command line using the minibuffer, -and then executes the command in an inferior shell, putting output in -the buffer named @samp{*compilation*}. The current buffer's default + To run @code{make} or another compilation command, type @kbd{M-x +compile}. This reads a shell command line using the minibuffer, and +then executes the command in an inferior shell, putting output in the +buffer named @samp{*compilation*}. The current buffer's default directory is used as the working directory for the execution of the -command; normally, therefore, the compilation happens in this +command; normally, therefore, compilation takes place in this directory. @vindex compile-command - The default for the compilation command is normally @samp{make -k}, -which is correct most of the time for nontrivial programs. -@xref{Top,, Make, make, GNU Make Manual}. If you have done @kbd{M-x -compile} before, the default each time is the command you used the -previous time. @code{compile} stores this command in the variable -@code{compile-command}, so setting that variable specifies the default -for the next use of @kbd{M-x compile}. If a file specifies a file -local value for @code{compile-command}, that provides the default when -you type @kbd{M-x compile} in that file's buffer. @xref{File -Variables}. - - Starting a compilation displays the buffer @samp{*compilation*} in -another window but does not select it. The buffer's mode line tells -you whether compilation is finished, with the word @samp{run}, -@samp{signal} or @samp{exit} inside the parentheses. You do not have -to keep this buffer visible; compilation continues in any case. While -a compilation is going on, the string @samp{Compiling} appears in the -mode lines of all windows. When this string disappears, the -compilation is finished. - - If you want to watch the compilation transcript as it appears, switch -to the @samp{*compilation*} buffer and move point to the end of the -buffer. When point is at the end, new compilation output is inserted -above point, which remains at the end. If point is not at the end of -the buffer, it remains fixed while more compilation output is added at -the end of the buffer. + The default compilation command is @samp{make -k}, which is usually +correct for programs compiled using the @command{make} utility (the +@samp{-k} flag tells @command{make} to continue compiling as much as +possible after an error). @xref{Top,, Make, make, GNU Make Manual}. +If you have done @kbd{M-x compile} before, the command that you +specified is automatically stored in the variable +@code{compile-command}; this is used as the default the next time you +type @kbd{M-x compile}. A file can also specify a file-local value +for @code{compile-command} (@pxref{File Variables}). + + Starting a compilation displays the @samp{*compilation*} buffer in +another window but does not select it. While the compilation is +running, the word @samp{run} is shown in the major mode indicator for +the @samp{*compilation*} buffer, and the word @samp{Compiling} appears +in all mode lines. You do not have to keep the @samp{*compilation*} +buffer visible while compilation is running; it continues in any case. +When the compilation ends, for whatever reason, the mode line of the +@samp{*compilation*} buffer changes to say @samp{exit} (followed by +the exit code: @samp{[0]} for a normal exit), or @samp{signal} (if a +signal terminated the process). + + If you want to watch the compilation transcript as it appears, +switch to the @samp{*compilation*} buffer and move point to the end of +the buffer. When point is at the end, new compilation output is +inserted above point, which remains at the end. Otherwise, point +remains fixed while compilation output is added at the end of the +buffer. @cindex compilation buffer, keeping point at end @vindex compilation-scroll-output If you change the variable @code{compilation-scroll-output} to a -non-@code{nil} value, the compilation buffer will scroll automatically -to follow the output as it comes in. If the value is -@code{first-error}, the scrolling stops at the first error that -appears, leaving point at that error. For any other non-@code{nil} -value, the buffer continues scrolling until there is no more output. +non-@code{nil} value, the @samp{*compilation*} buffer scrolls +automatically to follow the output. If the value is +@code{first-error}, scrolling stops when the first error appears, +leaving point at that error. For any other non-@code{nil} value, +scrolling continues until there is no more output. @findex recompile To rerun the last compilation with the same command, type @kbd{M-x -recompile}. This automatically reuses the compilation command from -the last invocation of @kbd{M-x compile}. It also reuses the +recompile}. This reuses the compilation command from the last +invocation of @kbd{M-x compile}. It also reuses the @samp{*compilation*} buffer and starts the compilation in its default directory, which is the directory in which the previous compilation was started. - When the compiler process terminates, for whatever reason, the mode -line of the @samp{*compilation*} buffer changes to say @samp{exit} -(followed by the exit code, @samp{[0]} for a normal exit), or -@samp{signal} (if a signal terminated the process), instead of -@samp{run}. - @findex kill-compilation Starting a new compilation also kills any compilation already running in @samp{*compilation*}, as the buffer can only handle one @@ -126,27 +121,6 @@ @pxref{Misc Buffer}), then switch buffers and start the other compilation. This will create a new @samp{*compilation*} buffer. - Emacs does not expect a compiler process to launch asynchronous -subprocesses; if it does, and they keep running after the main -compiler process has terminated, Emacs may kill them or their output -may not arrive in Emacs. To avoid this problem, make the main process -wait for its subprocesses to finish. In a shell script, you can do this -using @samp{$!} and @samp{wait}, like this: - -@example -(sleep 10; echo 2nd)& pid=$! # @r{Record pid of subprocess} -echo first message -wait $pid # @r{Wait for subprocess} -@end example - - If the background process does not output to the compilation buffer, -so you only need to prevent it from being killed when the main -compilation process terminates, this is sufficient: - -@example -nohup @var{command}; sleep 1 -@end example - @vindex compilation-environment You can control the environment passed to the compilation command with the variable @code{compilation-environment}. Its value is a list @@ -159,153 +133,154 @@ @cindex Compilation mode @cindex mode, Compilation - The @samp{*compilation*} buffer uses a special major mode, -Compilation mode, whose main feature is to provide a convenient way to -visit the source line corresponding to an error message. These -commands are also available in other special buffers that list -locations in files, including those made by @kbd{M-x grep} and -@kbd{M-x occur}. +@cindex locus + The @samp{*compilation*} buffer uses a major mode called Compilation +mode. Compilation mode turns each error message in the buffer into a +hyperlink; you can move point to it and type @key{RET}, or click on it +with the mouse (@pxref{Mouse References}), to visit the @dfn{locus} of +the error message in a separate window. The locus is the specific +position in a file where that error occurred. + +@findex compile-goto-error +@vindex compilation-auto-jump-to-first-error + If you change the variable +@code{compilation-auto-jump-to-first-error} to a non-@code{nil} value, +Emacs automatically visits the locus of the first error message that +appears in the @samp{*compilation*} buffer. + + Compilation mode provides the following additional commands. These +commands can also be used in @samp{*grep*} buffers, where the +hyperlinks are search matches rather than error messages (@pxref{Grep +Searching}). @table @kbd @item M-g M-n @itemx M-g n @itemx C-x ` -Visit the locus of the next error message or match. +Visit the locus of the next error message or match (@code{next-error}). @item M-g M-p @itemx M-g p -Visit the locus of the previous error message or match. -@item @key{RET} -Visit the locus of the error message that point is on. -This command is used in the compilation buffer. -@item Mouse-2 -Visit the locus of the error message that you click on. +Visit the locus of the previous error message or match +(@code{previous-error}). @item M-n -Find and highlight the locus of the next error message, without -selecting the source buffer. +Move point to the next error message or match, without visiting its +locus (@code{compilation-next-error}). @item M-p -Find and highlight the locus of the previous error message, without -selecting the source buffer. +Move point to the previous error message or match, without visiting +its locus (@code{compilation-previous-error}). @item M-@} -Move point to the next error for a different file than the current -one. +Move point to the next error message or match occurring in a different +file (@code{compilation-next-file}). @item M-@{ -Move point to the previous error for a different file than the current -one. +Move point to the previous error message or match occurring in a +different file (@code{compilation-previous-file}). @item C-c C-f Toggle Next Error Follow minor mode, which makes cursor motion in the compilation buffer produce automatic source display. @end table -@findex compile-goto-error -@vindex compilation-auto-jump-to-first-error - You can visit the source for any particular error message by moving -point in the @samp{*compilation*} buffer to that error message and -typing @key{RET} (@code{compile-goto-error}). Alternatively, you can -click @kbd{Mouse-2} on the error message; you need not switch to the -@samp{*compilation*} buffer first. If you set the variable -@code{compilation-auto-jump-to-first-error} to a non-@code{nil} value, -Emacs automatically jumps to the first error, if any, as soon as it -appears in the @samp{*compilation*} buffer. - @kindex M-g M-n @kindex M-g n @kindex C-x ` @findex next-error @vindex next-error-highlight - To parse the compiler error messages sequentially, type @kbd{C-x `} -(@code{next-error}). The character following the @kbd{C-x} is the -backquote or ``grave accent,'' not the single-quote. This command is -available in all buffers, not just in @samp{*compilation*}; it -displays the next error message at the top of one window and source -location of the error in another window. It also temporarily -highlights the relevant source line, for a period controlled by the -variable @code{next-error-highlight}. - - The first time @w{@kbd{C-x `}} is used after the start of a compilation, -it moves to the first error's location. Subsequent uses of @kbd{C-x -`} advance down to subsequent errors. If you visit a specific error -message with @key{RET} or @kbd{Mouse-2}, subsequent @w{@kbd{C-x `}} -commands advance from there. When @w{@kbd{C-x `}} gets to the end of the -buffer and finds no more error messages to visit, it fails and signals -an Emacs error. @w{@kbd{C-u C-x `}} starts scanning from the beginning of -the compilation buffer, and goes to the first error's location. + To visit errors sequentially, type @w{@kbd{C-x `}} +(@code{next-error}), or equivalently @kbd{M-g M-n} or @kbd{M-g n}. +This command can be invoked from any buffer, not just a Compilation +mode buffer. The first time you invoke it after a compilation, it +visits the locus of the first error message. Each subsequent +@w{@kbd{C-x `}} visits the next error, in a similar fashion. If you +visit a specific error with @key{RET} or a mouse click in the +@samp{*compilation*} buffer, subsequent @w{@kbd{C-x `}} commands +advance from there. When @w{@kbd{C-x `}} finds no more error messages +to visit, it signals an error. @w{@kbd{C-u C-x `}} starts again from +the beginning of the compilation buffer, and visits the first locus. + + @kbd{M-g M-p} or @kbd{M-g p} (@code{previous-error}) iterates +through errors in the opposite direction. + + The @code{next-error} and @code{previous-error} commands don't just +act on the errors or matches listed in @samp{*compilation*} and +@samp{*grep*} buffers; they also know how to iterate through error or +match lists produced by other commands, such as @kbd{M-x occur} +(@pxref{Other Repeating Search}). If you are already in a buffer +containing error messages or matches, those are the ones that are +iterated through; otherwise, Emacs looks for a buffer containing error +messages or matches amongst the windows of the selected frame, then +for one that @code{next-error} or @code{previous-error} previously +iterated through, and finally amongst all other buffers. If the +buffer chosen for iterating through is not currently displayed in a +window, it will be displayed. @vindex compilation-skip-threshold - By default, @w{@kbd{C-x `}} skips less important messages. The variable -@code{compilation-skip-threshold} controls this. If its value is 2, -@w{@kbd{C-x `}} skips anything less than error, 1 skips anything less -than warning, and 0 doesn't skip any messages. The default is 1. - - When the window has a left fringe, an arrow in the fringe points to -the current message in the compilation buffer. The variable -@code{compilation-context-lines} controls the number of lines of -leading context to display before the current message. Going to an -error message location scrolls the @samp{*compilation*} buffer to put -the message that far down from the top. The value @code{nil} is -special: if there's a left fringe, the window doesn't scroll at all -if the message is already visible. If there is no left fringe, -@code{nil} means display the message at the top of the window. - - If you're not in the compilation buffer when you run -@code{next-error}, Emacs will look for a buffer that contains error -messages. First, it looks for one displayed in the selected frame, -then for one that previously had @code{next-error} called on it, and -then at the current buffer. Finally, Emacs looks at all the remaining -buffers. @code{next-error} signals an error if it can't find any such -buffer. + By default, the @code{next-error} and @code{previous-error} commands +skip less important messages. The variable +@code{compilation-skip-threshold} controls this. The default value, +1, means to skip anything less important than a warning. A value of 2 +means to skip anything less important than an error, while 0 means not +to skip any messages. + + When Emacs visits the locus of an error message, it momentarily +highlights the relevant source line. The duration of this highlight +is determined by the variable @code{next-error-highlight}. + +@vindex compilation-context-lines + If the @samp{*compilation*} buffer is shown in a window with a left +fringe (@pxref{Fringes}), the locus-visiting commands put an arrow in +the fringe, pointing to the current error message. If the window has +no left fringe, such as on a text-only terminal, these commands scroll +the window so that the current message is at the top of the window. +If you change the variable @code{compilation-context-lines} to an +integer value @var{n}, these commands scroll the window so that the +current error message is @var{n} lines from the top, whether or not +there is a fringe; the default value, @code{nil}, gives the behavior +described above. @vindex compilation-error-regexp-alist @vindex grep-regexp-alist To parse messages from the compiler, Compilation mode uses the variable @code{compilation-error-regexp-alist} which lists various -formats of error messages and tells Emacs how to extract the source file -and the line number from the text of a message. If your compiler isn't -supported, you can tailor Compilation mode to it by adding elements to -that list. A similar variable @code{grep-regexp-alist} tells Emacs how -to parse output of a @code{grep} command. +error message formats and tells Emacs how to extract the locus from +each. A similar variable, @code{grep-regexp-alist}, tells Emacs how +to parse output from a @code{grep} command (@pxref{Grep Searching}). @findex compilation-next-error @findex compilation-previous-error @findex compilation-next-file @findex compilation-previous-file - Compilation mode also redefines the keys @key{SPC} and @key{DEL} to -scroll by screenfuls, and @kbd{M-n} (@code{compilation-next-error}) -and @kbd{M-p} (@code{compilation-previous-error}) to move to the next -or previous error message. You can also use @kbd{M-@{} -(@code{compilation-next-file} and @kbd{M-@}} -(@code{compilation-previous-file}) to move up or down to an error -message for a different source file. + Compilation mode also defines the keys @key{SPC} and @key{DEL} to +scroll by screenfuls; @kbd{M-n} (@code{compilation-next-error}) and +@kbd{M-p} (@code{compilation-previous-error}) to move to the next or +previous error message; and @kbd{M-@{} (@code{compilation-next-file}) +and @kbd{M-@}} (@code{compilation-previous-file}) to move to the next +or previous error message for a different source file. @cindex Next Error Follow mode @findex next-error-follow-minor-mode You can type @kbd{C-c C-f} to toggle Next Error Follow mode. In this minor mode, ordinary cursor motion in the compilation buffer -automatically updates the source buffer. For instance, moving the -cursor to the next error message causes the location of that error to -be displayed immediately. +automatically updates the source buffer, i.e.@: moving the cursor over +an error message causes the locus of that error to be displayed. The features of Compilation mode are also available in a minor mode called Compilation Minor mode. This lets you parse error messages in -any buffer, not just a normal compilation output buffer. Type @kbd{M-x -compilation-minor-mode} to enable the minor mode. This defines the keys -@key{RET} and @kbd{Mouse-2}, as in the Compilation major mode. - - Compilation minor mode works in any buffer, as long as the contents -are in a format that it understands. In an Rlogin buffer (@pxref{Remote -Host}), Compilation minor mode automatically accesses remote source -files by FTP (@pxref{File Names}). +any buffer, not just a normal compilation output buffer. Type +@kbd{M-x compilation-minor-mode} to enable the minor mode. For +instance, in an Rlogin buffer (@pxref{Remote Host}), Compilation minor +mode automatically accesses remote source files by FTP (@pxref{File +Names}). @node Compilation Shell @section Subshells for Compilation - Emacs uses a shell to run the compilation command, but specifies the -option for a noninteractive shell. This means, in particular, that -the shell should start with no prompt. If you find your usual shell -prompt making an unsightly appearance in the @samp{*compilation*} -buffer, it means you have made a mistake in your shell's init file by -setting the prompt unconditionally. (This init file's name may be -@file{.bashrc}, @file{.profile}, @file{.cshrc}, @file{.shrc}, or -various other things, depending on the shell you use.) The shell init + The @kbd{M-x compile} command uses a shell to run the compilation +command, but specifies the option for a noninteractive shell. This +means, in particular, that the shell should start with no prompt. If +you find your usual shell prompt making an unsightly appearance in the +@samp{*compilation*} buffer, it means you have made a mistake in your +shell's init file by setting the prompt unconditionally. (This init +file may be named @file{.bashrc}, @file{.profile}, @file{.cshrc}, +@file{.shrc}, etc., depending on what shell you use.) The shell init file should set the prompt only if there already is a prompt. Here's how to do it in bash: @@ -322,67 +297,80 @@ if ($?prompt) set prompt = @dots{} @end example - There may well be other things that your shell's init file -ought to do only for an interactive shell. You can use the same -method to conditionalize them. - - The MS-DOS ``operating system'' does not support asynchronous -subprocesses; to work around this lack, @kbd{M-x compile} runs the -compilation command synchronously on MS-DOS. As a consequence, you must -wait until the command finishes before you can do anything else in -Emacs. -@iftex -@inforef{MS-DOS,,emacs-xtra}. -@end iftex + Emacs does not expect a compiler process to launch asynchronous +subprocesses; if it does, and they keep running after the main +compiler process has terminated, Emacs may kill them or their output +may not arrive in Emacs. To avoid this problem, make the main +compilation process wait for its subprocesses to finish. In a shell +script, you can do this using @samp{$!} and @samp{wait}, like this: + +@example +(sleep 10; echo 2nd)& pid=$! # @r{Record pid of subprocess} +echo first message +wait $pid # @r{Wait for subprocess} +@end example + +@noindent +If the background process does not output to the compilation buffer, +so you only need to prevent it from being killed when the main +compilation process terminates, this is sufficient: + +@example +nohup @var{command}; sleep 1 +@end example + @ifnottex -@xref{MS-DOS}. + On the MS-DOS ``operating system'', asynchronous subprocesses are +not supported, so @kbd{M-x compile} runs the compilation command +synchronously (i.e.@: you must wait until the command finishes before +you can do anything else in Emacs). @xref{MS-DOS}. @end ifnottex @node Grep Searching @section Searching with Grep under Emacs Just as you can run a compiler from Emacs and then visit the lines -with compilation errors, you can also run @code{grep} and then visit -the lines on which matches were found. This works by treating the -matches reported by @code{grep} as if they were ``errors.'' The -buffer of matches uses Grep mode, which is a variant of Compilation +with compilation errors, you can also run @command{grep} and then +visit the lines on which matches were found. This works by treating +the matches reported by @command{grep} as if they were ``errors.'' +The output buffer uses Grep mode, which is a variant of Compilation mode (@pxref{Compilation Mode}). @table @kbd @item M-x grep @itemx M-x lgrep -Run @code{grep} asynchronously under Emacs, with matching lines -listed in the buffer named @samp{*grep*}. +Run @command{grep} asynchronously under Emacs, listing matching lines in +the buffer named @samp{*grep*}. @item M-x grep-find @itemx M-x find-grep @itemx M-x rgrep -Run @code{grep} via @code{find}, and collect output in the buffer -named @samp{*grep*}. +Run @command{grep} via @code{find}, and collect output in the +@samp{*grep*} buffer. @item M-x zrgrep -Run @code{zgrep} and collect output in the buffer named @samp{*grep*}. +Run @code{zgrep} and collect output in the @samp{*grep*} buffer. @item M-x kill-grep -Kill the running @code{grep} subprocess. +Kill the running @command{grep} subprocess. @end table @findex grep - To run @code{grep}, type @kbd{M-x grep}, then enter a command line -that specifies how to run @code{grep}. Use the same arguments you -would give @code{grep} when running it normally: a @code{grep}-style + To run @command{grep}, type @kbd{M-x grep}, then enter a command line +that specifies how to run @command{grep}. Use the same arguments you +would give @command{grep} when running it normally: a @command{grep}-style regexp (usually in single-quotes to quote the shell's special characters) followed by file names, which may use wildcards. If you specify a prefix argument for @kbd{M-x grep}, it finds the tag (@pxref{Tags}) in the buffer around point, and puts that into the -default @code{grep} command. +default @command{grep} command. - Your command need not simply run @code{grep}; you can use any shell + Your command need not simply run @command{grep}; you can use any shell command that produces output in the same format. For instance, you -can chain @code{grep} commands, like this: +can chain @command{grep} commands, like this: @example grep -nH -e foo *.el | grep bar | grep toto @end example - The output from @code{grep} goes in the @samp{*grep*} buffer. You + The output from @command{grep} goes in the @samp{*grep*} buffer. You can find the corresponding lines in the original files using @w{@kbd{C-x `}}, @key{RET}, and so forth, just like compilation errors. @@ -397,30 +385,31 @@ The command @kbd{M-x grep-find} (also available as @kbd{M-x find-grep}) is similar to @kbd{M-x grep}, but it supplies a different initial default for the command---one that runs both @code{find} and -@code{grep}, so as to search every file in a directory tree. See also +@command{grep}, so as to search every file in a directory tree. See also the @code{find-grep-dired} command, in @ref{Dired and Find}. @findex lgrep @findex rgrep @findex zrgrep The commands @kbd{M-x lgrep} (local grep) and @kbd{M-x rgrep} -(recursive grep) are more user-friendly versions of @code{grep} and +(recursive grep) are more user-friendly versions of @command{grep} and @code{grep-find}, which prompt separately for the regular expression to match, the files to search, and the base directory for the search. Case sensitivity of the search is controlled by the current value of @code{case-fold-search}. The command @kbd{M-x zrgrep} is similar to -@code{rgrep}, but it calls @code{zgrep} instead of @code{grep} to -search the contents of gzipped files. +@kbd{M-x rgrep}, but it calls @command{zgrep} instead of +@command{grep} to search the contents of gzipped files. These commands build the shell commands based on the variables @code{grep-template} (for @code{lgrep}) and @code{grep-find-template} (for @code{rgrep}). The files to search can use aliases defined in the variable @code{grep-files-aliases}. - Subdirectories listed in the variable -@code{grep-find-ignored-directories} such as those typically used by -various version control systems, like CVS and arch, are automatically -skipped by @code{rgrep}. +@vindex grep-find-ignored-directories + Directories listed in the variable +@code{grep-find-ignored-directories} are automatically skipped by +@kbd{M-x rgrep}. The default value includes the data directories used +by various version control systems. @node Flymake @section Finding Syntax Errors On The Fly @@ -444,8 +433,13 @@ display any error messages associated with the current line, use @kbd{M-x flymake-display-err-menu-for-current-line}. - For more details about using Flymake, see @ref{Top, Flymake, -Flymake, flymake, The Flymake Manual}. + For more details about using Flymake, +@ifnottex +see @ref{Top, Flymake, Flymake, flymake, The Flymake Manual}. +@end ifnottex +@iftex +see the Flymake Info manual, which is distributed with Emacs. +@end iftex @node Debuggers @section Running Debuggers Under Emacs === modified file 'doc/emacs/emacs.texi' --- doc/emacs/emacs.texi 2011-12-04 05:55:36 +0000 +++ doc/emacs/emacs.texi 2011-12-08 13:21:58 +0000 @@ -39,7 +39,7 @@ @c in general, keep the following line commented out, unless doing a @c copy of this manual that will be published. The manual should go @c onto the distribution in the full, 8.5 x 11" size. -@smallbook +@c @smallbook @ifset smallbook @smallbook === modified file 'doc/emacs/programs.texi' --- doc/emacs/programs.texi 2011-12-06 08:12:18 +0000 +++ doc/emacs/programs.texi 2011-12-08 13:21:58 +0000 @@ -1283,17 +1283,11 @@ @kbd{@key{ESC} @key{TAB}} instead. @cindex tags-based completion -@cindex Info index completion -@findex complete-symbol In-buffer symbol completion generates its completion list in a -number of different ways. In most programming language modes, -completion is normally done using a tags table (@pxref{Tags}). -However, if you supply @kbd{C-M-i} or @kbd{M-@key{TAB}} with a numeric -argument, it completes using the Info file indexes for the current -language (e.g.@: the C Library Manual). Of course, Info-based -completion works only if there is an Info file for the standard -library functions of your language, and only if it is installed at -your site. +number of different ways. If Semantic mode is enabled, Emacs tries to +use the Semantic parser data for completion (@pxref{Semantic}). If +Semantic mode is not enabled or it fails at performing completion, +Emacs normally tries to complete using a tags table (@pxref{Tags}). @cindex Lisp symbol completion @cindex completion (Lisp symbols) @@ -1350,6 +1344,8 @@ allows Semantic to provide search, navigation, and completion commands that are powerful and precise. +@cindex Semantic mode +@cindex mode, Semantic To begin using Semantic, type @kbd{M-x semantic-mode} or click on the menu item named @samp{Source Code Parsers (Semantic)} in the @samp{Tools} menu. This enables Semantic mode, a global minor mode. ------------------------------------------------------------ revno: 106638 fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10116 committer: Stefan Monnier branch nick: trunk timestamp: Thu 2011-12-08 08:20:20 -0500 message: * lisp/pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg. (pcmpl-gnu-makefile-regexps): Accept "makefile" as well as files that end in ".mk". (pcmpl-gnu-make-rule-names): Check "makefile" and ignore errors when reading the makefile. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2011-12-06 22:14:32 +0000 +++ lisp/ChangeLog 2011-12-08 13:20:20 +0000 @@ -1,3 +1,11 @@ +2011-12-08 Stefan Monnier + + * pcmpl-gnu.el: Don't fail when there is no Makefile nor -f arg. + (pcmpl-gnu-makefile-regexps): Accept "makefile" as well as files that + end in ".mk". + (pcmpl-gnu-make-rule-names): Check "makefile" and ignore errors + when reading the makefile (bug#10116). + 2011-12-06 Stefan Monnier * pcmpl-gnu.el (pcomplete/make): Also allow filename arguments === modified file 'lisp/pcmpl-gnu.el' --- lisp/pcmpl-gnu.el 2011-12-06 22:14:32 +0000 +++ lisp/pcmpl-gnu.el 2011-12-08 13:20:20 +0000 @@ -35,7 +35,7 @@ ;; User Variables: (defcustom pcmpl-gnu-makefile-regexps - '("\\`GNUmakefile" "\\`Makefile" "\\.mak\\'") + '("\\`GNUmakefile" "\\`[Mm]akefile" "\\.ma?k\\'") "A list of regexps that will match Makefile names." :type '(repeat regexp) :group 'pcmpl-gnu) @@ -112,14 +112,16 @@ "Return a list of possible make rule names in MAKEFILE." (let* ((minus-f (member "-f" pcomplete-args)) (makefile (or (cadr minus-f) - (if (file-exists-p "GNUmakefile") - "GNUmakefile" - "Makefile"))) + (cond + ((file-exists-p "GNUmakefile") "GNUmakefile") + ((file-exists-p "makefile") "makefile") + (t "Makefile")))) rules) (if (not (file-readable-p makefile)) (unless minus-f (list "-f")) (with-temp-buffer - (insert-file-contents-literally makefile) + (ignore-errors ;Could be a directory or something. + (insert-file-contents makefile)) (while (re-search-forward (concat "^\\s-*\\([^\n#%.$][^:=\n]*\\)\\s-*:[^=]") nil t) (setq rules (append (split-string (match-string 1)) rules)))) ------------------------------------------------------------ revno: 106637 committer: Katsumi Yamaoka branch nick: trunk timestamp: Thu 2011-12-08 06:22:03 +0000 message: gnus-sum.el (gnus-summary-show-article): Don't load shr unconditionally. diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2011-12-07 06:07:53 +0000 +++ lisp/gnus/ChangeLog 2011-12-08 06:22:03 +0000 @@ -1,3 +1,8 @@ +2011-12-08 Katsumi Yamaoka + + * gnus-sum.el (gnus-summary-show-article): Don't load shr + unconditionally. + 2011-12-07 Katsumi Yamaoka * message.el (message-pop-to-buffer): Use pop-to-buffer instead of === modified file 'lisp/gnus/gnus-sum.el' --- lisp/gnus/gnus-sum.el 2011-12-06 01:30:54 +0000 +++ lisp/gnus/gnus-sum.el 2011-12-08 06:22:03 +0000 @@ -9611,9 +9611,12 @@ (when (gnus-summary-goto-subject (cdr gnus-article-current) nil t) (gnus-summary-update-secondary-mark (cdr gnus-article-current)))))) ((not arg) - (require 'shr) - (let ((shr-ignore-cache t)) - ;; Select the article the normal way. + ;; Select the article the normal way. + (if (eq mm-text-html-renderer 'shr) + (progn + (require 'shr) + (let ((shr-ignore-cache t)) + (gnus-summary-select-article nil 'force))) (gnus-summary-select-article nil 'force))) ((equal arg '(16)) ;; C-u C-u g ------------------------------------------------------------ Use --include-merges or -n0 to see merged revisions.