------------------------------------------------------------ revno: 116684 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 20:11:08 -0800 message: * lisp/simple.el (newline): Doc tweak. * etc/NEWS: Related edit. diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-03-05 17:14:48 +0000 +++ etc/NEWS 2014-03-06 04:11:08 +0000 @@ -351,6 +351,10 @@ ** Indentation changes +*** `electric-indent-mode' is now enabled by default. +E.g., typing RET reindents the current line and indents the new line. +`C-j' inserts a newline but does not indent. + +++ *** The behavior of `C-x TAB' (`indent-rigidly') has changed. When invoked without a prefix argument, it now activates a transient @@ -358,8 +362,6 @@ the text indentation in the region. Typing any other key resumes normal editing behavior. -*** `electric-indent-mode' is enabled by default. - +++ *** `tab-stop-list' is now implicitly extended to infinity by repeating the last step. Its default value is changed to nil, which means a tab === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-06 02:01:02 +0000 +++ lisp/ChangeLog 2014-03-06 04:11:08 +0000 @@ -1,5 +1,7 @@ 2014-03-06 Glenn Morris + * simple.el (newline): Doc tweak. + * emacs-lisp/shadow.el (load-path-shadows-find): Ignore dir-locals. (Bug#12357) === modified file 'lisp/simple.el' --- lisp/simple.el 2014-03-04 03:14:11 +0000 +++ lisp/simple.el 2014-03-06 04:11:08 +0000 @@ -383,8 +383,9 @@ text-property `hard'. With ARG, insert that many newlines. -To turn off indentation by this command, disable Electric Indent mode -\(see \\[electric-indent-mode]). +If `electric-indent-mode' is enabled, this indents the final new line +that it adds, and reindents the preceding line. To just insert +a newline, use \\[electric-indent-just-newline]. Calls `auto-fill-function' if the current column number is greater than the value of `fill-column' and ARG is nil. ------------------------------------------------------------ revno: 116683 fixes bug: http://debbugs.gnu.org/16942 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 21:10:33 -0500 message: * doc/lispref/searching.texi (Replacing Match): Remove incorrect return value diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-03-05 13:50:48 +0000 +++ doc/lispref/ChangeLog 2014-03-06 02:10:33 +0000 @@ -1,3 +1,8 @@ +2014-03-06 Glenn Morris + + * searching.texi (Replacing Match): + Remove incorrect, uninteresting return value. (Bug#16942) + 2014-03-05 Martin Rudalics * display.texi (Window Dividers): New section. === modified file 'doc/lispref/searching.texi' --- doc/lispref/searching.texi 2014-01-31 09:41:54 +0000 +++ doc/lispref/searching.texi 2014-03-06 02:10:33 +0000 @@ -1284,7 +1284,7 @@ the current buffer is the one in which you performed the last search. Then this function edits the buffer, replacing the matched text with @var{replacement}. It leaves point at the end of the replacement -text, and returns @code{t}. +text. If you performed the last search on a string, pass the same string as @var{string}. Then this function returns a new string, in which the ------------------------------------------------------------ revno: 116682 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 21:02:46 -0500 message: * lisp/mh-e/mh-compat.el (mh-display-completion-list): Replace use of obsolete argument of display-completion-list. diff: === modified file 'lisp/mh-e/ChangeLog' --- lisp/mh-e/ChangeLog 2014-03-03 04:57:26 +0000 +++ lisp/mh-e/ChangeLog 2014-03-06 02:02:46 +0000 @@ -1,3 +1,8 @@ +2014-03-06 Glenn Morris + + * mh-compat.el (mh-display-completion-list): + Replace use of obsolete argument of display-completion-list. + 2013-11-05 Stefan Monnier * mh-print.el (mh-ps-print-preprint): Don't use dynamic-var === modified file 'lisp/mh-e/mh-compat.el' --- lisp/mh-e/mh-compat.el 2014-01-01 07:43:34 +0000 +++ lisp/mh-e/mh-compat.el 2014-03-06 02:02:46 +0000 @@ -96,12 +96,18 @@ (defmacro mh-display-completion-list (completions &optional common-substring) "Display the list of COMPLETIONS. See documentation for `display-completion-list' for a description of the -arguments COMPLETIONS and perhaps COMMON-SUBSTRING. -This macro is used by Emacs versions that lack a COMMON-SUBSTRING -argument, introduced in Emacs 22." - (if (< emacs-major-version 22) - `(display-completion-list ,completions) - `(display-completion-list ,completions ,common-substring))) +arguments COMPLETIONS. +The optional argument COMMON-SUBSTRING, if non-nil, should be a string +specifying a common substring for adding the faces +`completions-first-difference' and `completions-common-part' to +the completions." + (cond ((< emacs-major-version 22) `(display-completion-list ,completions)) + ((fboundp 'completion-hilit-commonality) ; Emacs 23.1 and later + `(display-completion-list + (completion-hilit-commonality ,completions + ,(length common-substring) nil))) + (t ; Emacs 22 + `(display-completion-list ,completions ,common-substring)))) (defmacro mh-face-foreground (face &optional frame inherit) "Return the foreground color name of FACE, or nil if unspecified. ------------------------------------------------------------ revno: 116681 fixes bug: http://debbugs.gnu.org/12357 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 21:01:02 -0500 message: * lisp/emacs-lisp/shadow.el (load-path-shadows-find): Ignore dir-locals. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 18:58:16 +0000 +++ lisp/ChangeLog 2014-03-06 02:01:02 +0000 @@ -1,3 +1,8 @@ +2014-03-06 Glenn Morris + + * emacs-lisp/shadow.el (load-path-shadows-find): + Ignore dir-locals. (Bug#12357) + 2014-03-05 Glenn Morris * files.el (interpreter-mode-alist): === modified file 'lisp/emacs-lisp/shadow.el' --- lisp/emacs-lisp/shadow.el 2014-01-01 07:43:34 +0000 +++ lisp/emacs-lisp/shadow.el 2014-03-06 02:01:02 +0000 @@ -115,7 +115,9 @@ ;; FILE now contains the current file name, with no suffix. (unless (or (member file files-seen-this-dir) ;; Ignore these files. - (member file '("subdirs" "leim-list"))) + (member file (list "subdirs" "leim-list" + (file-name-sans-extension + dir-locals-file)))) ;; File has not been seen yet in this directory. ;; This test prevents us declaring that XXX.el shadows ;; XXX.elc (or vice-versa) when they are in the same directory. ------------------------------------------------------------ revno: 116680 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 20:59:47 -0500 message: * etc/tutorials/TUTORIAL: Mention electric behavior of RET. Note that I had to change "\" to `\', because otherwise Emacs thought that everything after that point was inside a string and so did not indent anything. So translators should check for anything similar in their translated versions. diff: === modified file 'etc/ChangeLog' --- etc/ChangeLog 2014-03-03 04:57:26 +0000 +++ etc/ChangeLog 2014-03-06 01:59:47 +0000 @@ -1,3 +1,7 @@ +2014-03-06 Glenn Morris + + * tutorials/TUTORIAL: Mention electric behavior of RET. + 2014-02-25 Glenn Morris * refcards/vipcard.tex: Hook fix. === modified file 'etc/tutorials/TUTORIAL' --- etc/tutorials/TUTORIAL 2014-01-01 07:43:34 +0000 +++ etc/tutorials/TUTORIAL 2014-03-06 01:59:47 +0000 @@ -312,7 +312,7 @@ graphical display, little curved arrows appear in the narrow spaces on each side of the text area (the left and right "fringes"), to indicate where a line has been continued. If you're using a text terminal, the -continued line is indicated by a backslash ("\") on the rightmost +continued line is indicated by a backslash (`\') on the rightmost screen column. >> Insert text until you reach the right margin, and keep on inserting. @@ -331,6 +331,19 @@ >> Type to reinsert the Newline you deleted. +The key is special, in that pressing it may do more than +just insert a Newline character. Depending on the surrounding text, +it may insert whitespace after the Newline character, so that when +you start typing on the newly created line, the text lines up with +that on the previous line. We call this behavior (where pressing a +key does more than simply inserting the relevant character) "electric". + +>> Here is an example of being electric. + Type at the end of this line. + +You should see that after inserting the Newline, Emacs inserts spaces +so that the cursor moves under the "T" of "Type". + Remember that most Emacs commands can be given a repeat count; this includes text characters. Repeating a text character inserts it several times. @@ -391,7 +404,7 @@ C-k kills the line itself, and makes all the other lines move up. C-k treats a numeric argument specially: it kills that many lines AND their contents. This is not mere repetition. C-u 2 C-k kills two -lines and their newlines; typing C-k twice would not do that. +lines and their Newlines; typing C-k twice would not do that. You can yank the killed text either at the same place where it was killed, or at some other place in the text you are editing, or even in ------------------------------------------------------------ revno: 116679 author: Lars Ingebrigtsen committer: Katsumi Yamaoka branch nick: trunk timestamp: Wed 2014-03-05 22:54:48 +0000 message: lisp/gnus/gnus-group.el (gnus-group-make-group): Clarify prompt diff: === modified file 'lisp/gnus/ChangeLog' --- lisp/gnus/ChangeLog 2014-03-03 04:57:26 +0000 +++ lisp/gnus/ChangeLog 2014-03-05 22:54:48 +0000 @@ -1,3 +1,7 @@ +2014-03-05 Lars Ingebrigtsen + + * gnus-group.el (gnus-group-make-group): Clarify prompt. + 2014-02-22 Daniel Colascione * auth-source.el (auth-source-secrets-listify-pattern): New function. === modified file 'lisp/gnus/gnus-group.el' --- lisp/gnus/gnus-group.el 2014-01-01 07:43:34 +0000 +++ lisp/gnus/gnus-group.el 2014-03-05 22:54:48 +0000 @@ -2728,7 +2728,7 @@ (interactive (list (gnus-read-group "Group name: ") - (gnus-read-method "From method"))) + (gnus-read-method "Select method for new group (use tab for completion)"))) (when (stringp method) (setq method (or (gnus-server-to-method method) method))) ------------------------------------------------------------ revno: 116678 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 15:35:38 -0500 message: Tweak previous tweak diff: === modified file 'configure.ac' --- configure.ac 2014-03-05 19:57:36 +0000 +++ configure.ac 2014-03-05 20:35:38 +0000 @@ -653,7 +653,7 @@ dnl quotation ends if test $unported = yes; then - AC_MSG_ERROR([Emacs does not support building on `${canonical}' systems. + AC_MSG_ERROR([Emacs does not support `${canonical}' systems. If you think it should, please send a report to bug-gnu-emacs@gnu.org. Check `etc/MACHINES' for recognized configuration names.]) fi ------------------------------------------------------------ revno: 116677 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 14:57:36 -0500 message: * configure.ac: Tweak the "unported" error message. "Has not been ported to" usually isn't quite correct these days. Eg it could be an old platform that we dropped support for. diff: === modified file 'ChangeLog' --- ChangeLog 2014-03-05 19:04:44 +0000 +++ ChangeLog 2014-03-05 19:57:36 +0000 @@ -1,3 +1,7 @@ +2014-03-05 Glenn Morris + + * configure.ac: Tweak the "unported" error message. + 2014-03-05 Paul Eggert Fix configuration bug on Solaris 2.5.1 (Bug#16905). === modified file 'configure.ac' --- configure.ac 2014-03-05 02:39:05 +0000 +++ configure.ac 2014-03-05 19:57:36 +0000 @@ -653,7 +653,8 @@ dnl quotation ends if test $unported = yes; then - AC_MSG_ERROR([Emacs hasn't been ported to `${canonical}' systems. + AC_MSG_ERROR([Emacs does not support building on `${canonical}' systems. +If you think it should, please send a report to bug-gnu-emacs@gnu.org. Check `etc/MACHINES' for recognized configuration names.]) fi ------------------------------------------------------------ revno: 116676 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 14:04:44 -0500 message: Fix ChangeLog bug# typo diff: === modified file 'ChangeLog' --- ChangeLog 2014-03-05 02:39:05 +0000 +++ ChangeLog 2014-03-05 19:04:44 +0000 @@ -1,6 +1,6 @@ 2014-03-05 Paul Eggert - Fix configuration bug on Solaris 2.5.1 (Bug#16896). + Fix configuration bug on Solaris 2.5.1 (Bug#16905). * configure.ac: Fix a bug in shell pattern matching that caused 'configure' to treat Solaris 2.5.1 as if it were Solaris 10 or later. ------------------------------------------------------------ revno: 116675 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 14:02:55 -0500 message: * lisp/progmodes/sh-script.el: Fix whitespace in previous change. diff: === modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2014-03-05 18:58:16 +0000 +++ lisp/progmodes/sh-script.el 2014-03-05 19:02:55 +0000 @@ -255,7 +255,7 @@ es Extensible Shell sh Bourne Shell ash Almquist Shell - dash Debian Almquist Shell + dash Debian Almquist Shell jsh Bourne Shell with Job Control bash GNU Bourne Again Shell ksh88 Korn Shell '88 ------------------------------------------------------------ revno: 116674 fixes bug: http://debbugs.gnu.org/16938 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 13:58:16 -0500 message: Recognize dash shell * lisp/files.el (interpreter-mode-alist): * lisp/progmodes/sh-script.el (sh-ancestor-alist): Add dash. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 18:44:58 +0000 +++ lisp/ChangeLog 2014-03-05 18:58:16 +0000 @@ -1,3 +1,8 @@ +2014-03-05 Glenn Morris + + * files.el (interpreter-mode-alist): + * progmodes/sh-script.el (sh-ancestor-alist): Add dash. (Bug#16938) + 2014-03-05 Juanma Barranquero * frameset.el (frameset--initial-params): Filter out null entries. === modified file 'lisp/files.el' --- lisp/files.el 2014-03-04 03:26:17 +0000 +++ lisp/files.el 2014-03-05 18:58:16 +0000 @@ -2517,6 +2517,7 @@ ("scm" . scheme-mode) ("[acjkwz]sh" . sh-mode) ("r?bash2?" . sh-mode) + ("dash" . sh-mode) ("\\(dt\\|pd\\|w\\)ksh" . sh-mode) ("es" . sh-mode) ("i?tcsh" . sh-mode) === modified file 'lisp/progmodes/sh-script.el' --- lisp/progmodes/sh-script.el 2014-02-10 01:34:22 +0000 +++ lisp/progmodes/sh-script.el 2014-03-05 18:58:16 +0000 @@ -1,7 +1,6 @@ ;;; sh-script.el --- shell-script editing commands for Emacs -*- lexical-binding:t -*- -;; Copyright (C) 1993-1997, 1999, 2001-2014 Free Software Foundation, -;; Inc. +;; Copyright (C) 1993-1997, 1999, 2001-2014 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer ;; Version: 2.0f @@ -228,6 +227,7 @@ '((ash . sh) (bash . jsh) (bash2 . jsh) + (dash . ash) (dtksh . ksh) (es . rc) (itcsh . tcsh) @@ -255,6 +255,7 @@ es Extensible Shell sh Bourne Shell ash Almquist Shell + dash Debian Almquist Shell jsh Bourne Shell with Job Control bash GNU Bourne Again Shell ksh88 Korn Shell '88 @@ -267,6 +268,7 @@ posix IEEE 1003.2 Shell Standard wsh ? Shell" :type '(repeat (cons symbol symbol)) + :version "24.4" ; added dash :group 'sh-script) ------------------------------------------------------------ revno: 116673 committer: Lars Ingebrigtsen branch nick: trunk timestamp: Wed 2014-03-05 19:44:58 +0100 message: (eww-textarea-map): [tab] doesn't work on tty. Reported by Mario Lang. * net/shr.el (shr-map): Ditto. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 16:22:47 +0000 +++ lisp/ChangeLog 2014-03-05 18:44:58 +0000 @@ -18,6 +18,10 @@ * net/eww.el (eww-mode-map): [tab] doesn't work on tty. (eww-setup-buffer): Clear next/prev/etc more reliably. + (eww-textarea-map): [tab] doesn't work on tty. Reported by Mario + Lang. + + * net/shr.el (shr-map): Ditto. 2014-03-04 Glenn Morris === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2014-03-05 12:39:13 +0000 +++ lisp/net/eww.el 2014-03-05 18:44:58 +0000 @@ -592,8 +592,8 @@ (define-key map [(control a)] 'eww-beginning-of-text) (define-key map [(control c) (control c)] 'eww-submit) (define-key map [(control e)] 'eww-end-of-text) - (define-key map [tab] 'shr-next-link) - (define-key map [backtab] 'shr-previous-link) + (define-key map [?\t] 'shr-next-link) + (define-key map [?\M-\t] 'shr-previous-link) map)) (defvar eww-textarea-map @@ -601,8 +601,8 @@ (set-keymap-parent map text-mode-map) (define-key map "\r" 'forward-line) (define-key map [(control c) (control c)] 'eww-submit) - (define-key map [tab] 'shr-next-link) - (define-key map [backtab] 'shr-previous-link) + (define-key map [?\t] 'shr-next-link) + (define-key map [?\M-\t] 'shr-previous-link) map)) (defvar eww-select-map === modified file 'lisp/net/shr.el' --- lisp/net/shr.el 2014-02-28 20:00:12 +0000 +++ lisp/net/shr.el 2014-03-05 18:44:58 +0000 @@ -147,8 +147,8 @@ (define-key map "a" 'shr-show-alt-text) (define-key map "i" 'shr-browse-image) (define-key map "z" 'shr-zoom-image) - (define-key map [tab] 'shr-next-link) - (define-key map [backtab] 'shr-previous-link) + (define-key map [?\t] 'shr-next-link) + (define-key map [?\M-\t] 'shr-previous-link) (define-key map [follow-link] 'mouse-face) (define-key map [mouse-2] 'shr-browse-url) (define-key map "I" 'shr-insert-image) ------------------------------------------------------------ revno: 116672 committer: Glenn Morris branch nick: trunk timestamp: Wed 2014-03-05 09:14:48 -0800 message: * etc/NEWS: Fix paren typo from earlier change diff: === modified file 'etc/NEWS' --- etc/NEWS 2014-03-05 07:41:48 +0000 +++ etc/NEWS 2014-03-05 17:14:48 +0000 @@ -912,7 +912,7 @@ +++ *** You can customize the SMIE indentation of a file by adding an entry to -the file's local variables of the form: `eval: (smie-config-local '(RULES)'. +the file's local variables of the form: `eval: (smie-config-local '(RULES))'. +++ *** New commands `smie-config-show-indent' and `smie-config-set-indent'. ------------------------------------------------------------ revno: 116671 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2014-03-05 17:22:47 +0100 message: lisp/frameset.el (frameset--initial-params): Filter out null entries. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 13:50:48 +0000 +++ lisp/ChangeLog 2014-03-05 16:22:47 +0000 @@ -1,3 +1,7 @@ +2014-03-05 Juanma Barranquero + + * frameset.el (frameset--initial-params): Filter out null entries. + 2014-03-05 Martin Rudalics * window.el (window-min-height, window-min-width): Rewrite === modified file 'lisp/frameset.el' --- lisp/frameset.el 2014-02-19 21:04:06 +0000 +++ lisp/frameset.el 2014-03-05 16:22:47 +0000 @@ -941,7 +941,7 @@ flickering; other parameters, like `minibuffer' and `border-width', can not be changed once the frame has been created. Internal use only." (cl-loop for param in '(left top with height border-width minibuffer) - collect (assq param parameters))) + when (assq param parameters) collect it)) (defun frameset--restore-frame (parameters window-state filters force-onscreen) "Set up and return a frame according to its saved state. ------------------------------------------------------------ revno: 116670 committer: martin rudalics branch nick: trunk timestamp: Wed 2014-03-05 14:50:48 +0100 message: Various window code related fixes and documentation changes. * dispnew.c (change_frame_size_1): Add new_lines instead of new_height, the latter may be still zero if passed as such. * window.c (Fwindow_pixel_height): Mention bottom divider in doc-string. * window.el (window-min-height, window-min-width): Rewrite doc-strings. (window-body-size): Add PIXELWISE argument to make it consistent with its callees. * display.texi (Window Dividers): New section. * frames.texi (Layout Parameters): Add right-divider-width and bottom-divider-width. * windows.texi (Window Sizes): Redraw schematic and rewrite its description. Rewrite descriptions of `window-total-height', `window-total-width', `window-total-size', `window-body-height', `window-body-width' and `window-size-fixed'. Add descriptions for `window-pixel-height', `window-pixel-width', `window-min-height' and `window-min-width'. Remove description of `window-size-fixed-p' moving part of it to that of `window-size-fixed'. (Resizing Windows): Mention dividers when talking about minimum sizes. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-03-05 07:41:48 +0000 +++ doc/lispref/ChangeLog 2014-03-05 13:50:48 +0000 @@ -1,3 +1,19 @@ +2014-03-05 Martin Rudalics + + * display.texi (Window Dividers): New section. + * frames.texi (Layout Parameters): Add right-divider-width and + bottom-divider-width. + * windows.texi (Window Sizes): Redraw schematic and rewrite its + description. Rewrite descriptions of `window-total-height', + `window-total-width', `window-total-size', `window-body-height', + `window-body-width' and `window-size-fixed'. Add descriptions + for `window-pixel-height', `window-pixel-width', + `window-min-height' and `window-min-width'. Remove description + of `window-size-fixed-p' moving part of it to that of + `window-size-fixed'. + (Resizing Windows): Mention dividers when talking about minimum + sizes. + 2014-03-05 Glenn Morris * modes.texi (SMIE Customization): New section. === modified file 'doc/lispref/display.texi' --- doc/lispref/display.texi 2014-03-01 02:54:08 +0000 +++ doc/lispref/display.texi 2014-03-05 13:50:48 +0000 @@ -24,6 +24,7 @@ font, colors, etc. * Fringes:: Controlling window fringes. * Scroll Bars:: Controlling vertical scroll bars. +* Window Dividers:: Separating windows visually. * Display Property:: Enabling special display features. * Images:: Displaying images in Emacs buffers. * Buttons:: Adding clickable buttons to Emacs buffers. @@ -3896,6 +3897,53 @@ to use the value specified by the frame. @end defvar +@node Window Dividers +@section Window Dividers +@cindex window dividers +@cindex right dividers +@cindex bottom dividers + +Window dividers are bars drawn between a frame's windows. A ``right'' +divider is drawn between a window and its sibling(s) on the right. Its +width is specified by the frame parameter @code{right-divider-width}. A +``bottom'' divider is drawn between a window and its sibling(s) on the +bottom or the echo area. Its width is specified by the frame parameter +@code{bottom-divider-width}. In either case, specifying a width of zero +means to not draw such dividers. @xref{Layout Parameters}. + + Technically, a right divider ``belongs'' to the window on its left, +which means that its width is part of the total width of that window. A +bottom divider ``belongs'' to the window above it, which means that its +height is part of the total height of that window. @xref{Window Sizes}. +When a window has both, a right and a bottom divider, the bottom divider +``prevails''. This means that the width of the bottom divider equals +the total width of the window while the height of the right divider +equals the total height of the window minus the height of the bottom +divider. + + Dividers can be dragged with the mouse and are therefore useful for +adjusting the sizes of adjacent windows with the mouse. They also serve +to set windows visually apart from their siblings when no scroll bars or +mode lines are present. The following three faces allow to customize +the appearance of dividers: + +@table @code +@item window-divider +When a divider is less than three pixels wide, it is drawn solidly with +the foreground of this face. For larger dividers this face is used for +the inner part only, exluding the first and last pixel. + +@item window-divider-first-pixel +This is the face used for drawing the first pixel of a divider that is +at least three pixels wide. To obtain a solid appearance, set this to +the same value used for the @code{window-divider} face. + +@item window-divider-last-pixel +This is the face used for drawing the last pixel of a divider that is at +least three pixels wide. To obtain a solid appearance, set this to the +same value used for the @code{window-divider} face. +@end table + @node Display Property @section The @code{display} Property @cindex display specification === modified file 'doc/lispref/frames.texi' --- doc/lispref/frames.texi 2014-03-03 01:00:27 +0000 +++ doc/lispref/frames.texi 2014-03-05 13:50:48 +0000 @@ -745,6 +745,18 @@ precise width by specifying that width as a negative integer. If both widths are negative, only the left fringe gets the specified width. +@vindex right-divider-width, a frame parameter +@item right-divider-width +The width of the right divider (@pxref{Window Dividers}) of any window +on the frame, in pixels. A value of zero means to not draw right +dividers. + +@vindex bottom-divider-width, a frame parameter +@item bottom-divider-width +The width of the bottom divider (@pxref{Window Dividers}) of any window +on the frame, in pixels. A value of zero means to not draw bottom +dividers. + @vindex menu-bar-lines frame parameter @item menu-bar-lines The number of lines to allocate at the top of the frame for a menu === modified file 'doc/lispref/windows.texi' --- doc/lispref/windows.texi 2014-03-04 10:44:46 +0000 +++ doc/lispref/windows.texi 2014-03-05 13:50:48 +0000 @@ -382,6 +382,7 @@ @code{window-edges} (@pxref{Coordinates and Windows}). @end defun + @node Window Sizes @section Window Sizes @cindex window size @@ -391,18 +392,18 @@ @smallexample @group - _________________________________________ - ^ |______________ Header Line_______________| - | |LS|LF|LM| |RM|RF|RS| ^ - | | | | | | | | | | - Window | | | | Text Area | | | | Window - Total | | | | (Window Body) | | | | Body - Height | | | | | | | | Height - | | | | |<- Window Body Width ->| | | | | - | |__|__|__|_______________________|__|__|__| v - v |_______________ Mode Line _______________| - - <----------- Window Total Width --------> + ____________________________________________ + |______________ Header Line ______________|RD| ^ + ^ |LS|LF|LM| |RM|RF|RS| | | + | | | | | | | | | | | +Window | | | | Text Area | | | | | Window +Body | | | | | (Window Body) | | | | | Total +Height | | | | | | | | | Height + | | | | |<- Window Body Width ->| | | | | | + v |__|__|__|_______________________|__|__|__| | | + |_______________ Mode Line _______________|__| | + |_____________ Bottom Divider _______________| v + <---------- Window Total Width ------------> @end group @end smallexample @@ -411,104 +412,136 @@ @cindex text area of a window @cindex body of a window At the center of the window is the @dfn{text area}, or @dfn{body}, -where the buffer text is displayed. On each side of the text area is -a series of vertical areas; from innermost to outermost, these are the -left and right margins, denoted by LM and RM in the schematic -(@pxref{Display Margins}); the left and right fringes, denoted by LF -and RF (@pxref{Fringes}); and the left or right scroll bar, only one of -which is present at any time, denoted by LS and RS (@pxref{Scroll -Bars}). At the top of the window is an optional header line -(@pxref{Header Lines}), and at the bottom of the window is the mode -line (@pxref{Mode Line Format}). - - Emacs provides several functions for finding the height and width of -a window. Except where noted, Emacs reports window heights and widths -as integer numbers of lines and columns, respectively. On a graphical -display, each ``line'' and ``column'' actually corresponds to the -height and width of a ``default'' character specified by the frame's -default font. Thus, if a window is displaying text with a different -font or size, the reported height and width for that window may differ -from the actual number of text lines or columns displayed within it. - -@defun window-size &optional window horizontal pixelwise round -This function returns the height or width of @var{window}. -@var{window} must be a valid window. The default value of -@var{window} is the selected window. - -If @var{horizontal} is omitted or nil, return the total height of -@var{window}, in lines; otherwise return the total width in columns. - -The optional argument @var{pixelwise} means return size of -@var{window}, in pixels. - -The optional argument @var{round} is ignored if @var{pixelwise} is -non-@code{nil}. Otherwise it is handled as for -@code{window-total-height} and @code{window-total-width}. -@end defun +where the buffer text is displayed. The text area can be surrounded by +a series of optional areas. On the left and right, from innermost to +outermost, these are the left and right margins, denoted by LM and RM in +the schematic (@pxref{Display Margins}); the left and right fringes, +denoted by LF and RF (@pxref{Fringes}); the left or right scroll bar, +only one of which is present at any time, denoted by LS and RS +(@pxref{Scroll Bars}); and the right divider, denoted by RD +(@pxref{Window Dividers}). At the top of the window is the header line +(@pxref{Header Lines}); at the bottom of the window is the mode line +(@pxref{Mode Line Format}) followed by the bottom divider (@pxref{Window +Dividers}). + + Emacs provides miscellaneous functions for finding the height and +width of a window. The return value of many of these functions can be +specified either in units of pixels or in units of lines and columns. +On a graphical display, the latter actually correspond to the height and +width of a ``default'' character specified by the frame's default font +as returned by @code{frame-char-height} and @code{frame-char-width} +(@pxref{Size and Position}). Thus, if a window is displaying text with +a different font or size, the reported line height and column width for +that window may differ from the actual number of text lines or columns +displayed within it. @cindex window height @cindex height of a window @cindex total height of a window + The @dfn{total height} of a window is the number of lines comprising +the window's body, the header line, the mode line and the bottom divider +(if any). Note that the height of a frame is not the same as the height +of its root window (@pxref{Windows and Frames}), since a frame may also +contain an echo area, a menu bar, and a tool bar (@pxref{Size and +Position}). + +@defun window-total-height &optional window round +This function returns the total height, in lines, of the window +@var{window}. If @var{window} is omitted or @code{nil}, it defaults to +the selected window. If @var{window} is an internal window, the return +value is the total height occupied by its descendant windows. + + If a window's pixel height is not an integral multiple of its frame's +default character height, the number of lines occupied by the window is +rounded internally. This is done in a way such that, if the window is a +parent window, the sum of the total heights of all its child windows +internally equals the total height of their parent. This means that +although two windows have the same pixel height, their internal total +heights may differ by one line. This means also, that if this window is +vertically combined and has a right sibling, the topmost row of that +sibling can be calculated as the sum of this window's topmost row and +total height (@pxref{Coordinates and Windows}) + + If the optional argument @var{round} equals @code{ceiling}, this +function returns the smallest integer larger than @var{window}'s pixel +height divided by the character height of @var{window}'s frame; if it is +@code{floor}, it returns the largest integer smaller than @var{window}'s +pixel height divided by the character height of @var{window}'s frame. +Any other value of @var{round} means to return the internal value of the +total height of @var{window}. +@end defun + @cindex window width @cindex width of a window @cindex total width of a window - The @dfn{total height} of a window is the distance between the top -and bottom of the window, including the header line (if one exists) -and the mode line. The @dfn{total width} of a window is the distance -between the left and right edges of the mode line. Note that the -height of a frame is not the same as the height of its windows, since -a frame may also contain an echo area, menu bar, and tool bar -(@pxref{Size and Position}). - -@defun window-total-height &optional window round -This function returns the total height, in lines, of the window -@var{window}. If @var{window} is omitted or @code{nil}, it defaults -to the selected window. If @var{window} is an internal window, the -return value is the total height occupied by its descendant windows. - -If @var{window}'s pixel height is not an integral multiple of its -frame's character height, the number of lines occupied by @var{window} -is rounded internally. This is done in a way such that, if -@var{window} is a parent window, the sum of the total heights of all -its children internally equals the total height of @var{window}. - -If the optional argument @var{round} is @code{ceiling}, this function -will return the smallest integer larger than @var{window}'s pixel -height divided by the character height of @var{window}'s frame; if it -is @code{floor}, return the largest integer smaller than -@var{window}'s pixel height divided by the character height of -@var{window}'s frame. Any other value of @var{round} means to return -the internal total height of @var{window}. -@end defun +The @dfn{total width} of a window is the number of lines comprising the +window's body, its margins, fringes, scroll bars and a right divider (if +any). @defun window-total-width &optional window round This function returns the total width, in columns, of the window -@var{window}. If @var{window} is omitted or @code{nil}, it defaults -to the selected window. If @var{window} is internal, the return value -is the total width occupied by its descendant windows. +@var{window}. If @var{window} is omitted or @code{nil}, it defaults to +the selected window. If @var{window} is internal, the return value is +the total width occupied by its descendant windows. -If @var{window}'s pixel width is not an integral multiple of its -frame's character width, the number of lines occupied by @var{window} -is rounded internally. This is done in a way such that, if -@var{window} is a parent window, the sum of the total widths of all -its children internally equals the total width of @var{window}. + If a window's pixel width is not an integral multiple of its frame's +character width, the number of lines occupied by the window is rounded +internally. This is done in a way such that, if the window is a parent +window, the sum of the total widths of all its children internally +equals the total width of their parent. This means that although two +windows have the same pixel width, their internal total widths may +differ by one column. This means also, that if this window is +horizontally combined and has a right sibling, the leftmost column of +that sibling can be calculated as the sum of this window's leftmost +column and total width (@pxref{Coordinates and Windows}). If the optional argument @var{round} is @code{ceiling}, this function -will return the smallest integer larger than @var{window}'s pixel -width divided by the character width of @var{window}'s frame; if it is -@code{floor}, return the largest integer smaller than @var{window}'s -pixel width divided by the character width of @var{window}'s frame. -Any other value of @var{round} means to return the internal total -width of @var{window}. +will return the smallest integer larger than @var{window}'s pixel width +divided by the character width of @var{window}'s frame; if it is +@code{floor}, it returns the largest integer smaller than @var{window}'s +pixel width divided by the character width of @var{window}'s frame. Any +other value of @var{round} means to return the internal total width of +@var{window}. @end defun @defun window-total-size &optional window horizontal round -This function returns either the total height or width of the window -@var{window}. If @var{horizontal} is omitted or @code{nil}, this is -equivalent to calling @code{window-total-height} for @var{window}; -otherwise it is equivalent to calling @code{window-total-width} for -@var{window}. The optional argument @code{ROUND} is handled as for -@code{window-total-height} and @code{window-total-width}. +This function returns either the total height in lines or the total +width in columns of the window @var{window}. If @var{horizontal} is +omitted or @code{nil}, this is equivalent to calling +@code{window-total-height} for @var{window}; otherwise it is equivalent +to calling @code{window-total-width} for @var{window}. The optional +argument @code{ROUND} is handled as for @code{window-total-height} and +@code{window-total-width}. +@end defun + +The following two functions can be used to return the total size of a +window in units of pixels. + +@cindex window pixel height +@cindex pixel height of a window +@cindex total pixel height of a window + +@defun window-pixel-height &optional window +This function returns the total height of window @var{window} in pixels. +@var{window} must be a valid window and defaults to the selected one. + +The return value includes mode and header line and a bottom divider, if +any. If @var{window} is an internal window, its pixel height is the +pixel height of the screen areas spanned by its children. +@end defun + +@cindex window pixel height +@cindex pixel height of a window +@cindex total pixel height of a window + +@defun window-pixel-width &optional Lisp_Object &optional window +This function returns the width of window @var{window} in pixels. +@var{window} must be a valid window and defaults to the selected one. + +The return value includes the fringes and margins of @var{window} as +well as any vertical dividers or scroll bars belonging to @var{window}. +If @var{window} is an internal window, its pixel width is the width of +the screen areas spanned by its children. @end defun @cindex full-width window @@ -533,40 +566,51 @@ @cindex window body height @cindex body height of a window @cindex window body width +The @dfn{body height} of a window is the height of its text area, which +does not include a mode or header line or a bottom divider. + +@defun window-body-height &optional window pixelwise +This function returns the height, in lines, of the body of window +@var{window}. If @var{window} is omitted or @code{nil}, it defaults to +the selected window; otherwise it must be a live window. + +If the optional argument @var{pixelwise} is non-@code{nil}, this +function returns the body height of @var{window} counted in pixels. + +If @var{pixelwise} is @code{nil}, the return value is rounded down to +the nearest integer, if necessary. This means that if a line at the +bottom of the text area is only partially visible, that line is not +counted. It also means that the height of a window's body can never +exceed its total height as returned by @code{window-total-height}. +@end defun + @cindex body width of a window @cindex body size of a window @cindex window body size - The @dfn{body height} of a window is the height of its text area, -which does not include the mode or header line. Similarly, the -@dfn{body width} is the width of the text area, which does not include -the scroll bar, fringes, or margins. - -@defun window-body-height &optional window pixelwise -This function returns the body height, in lines, of the window -@var{window}. If @var{window} is omitted or @code{nil}, it defaults -to the selected window; otherwise it must be a live window. - -If there is a partially-visible line at the bottom of the text area, -that counts as a whole line; to exclude such a partially-visible line, -use @code{window-text-height}, below. -@end defun +The @dfn{body width} of a window is the width of its text area, which +does not include the scroll bar, fringes, margins or a right divider. @defun window-body-width &optional window pixelwise -This function returns the body width, in columns, of the window -@var{window}. If @var{window} is omitted or @code{nil}, it defaults -to the selected window; otherwise it must be a live window. -@end defun - -@defun window-body-size &optional window horizontal -This function returns the body height or body width of @var{window}. -If @var{horizontal} is omitted or @code{nil}, it is equivalent to -calling @code{window-body-height} for @var{window}; otherwise it is -equivalent to calling @code{window-body-width}. -@end defun - -@defun window-text-height &optional window -This function is like @code{window-body-height}, except that any -partially-visible line at the bottom of the text area is not counted. +This function returns the width, in columns, of the body of window +@var{window}. If @var{window} is omitted or @code{nil}, it defaults to +the selected window; otherwise it must be a live window. + +If the optional argument @var{pixelwise} is non-@code{nil}, this +function returns the body width of @var{window} in units of pixels. + +If @var{pixelwise} is @code{nil}, the return value is rounded down to +the nearest integer, if necessary. This means that if a column on the +right of the text area is only partially visible, that column is not +counted. It also means that the width of a window's body can never +exceed its total width as returned by @code{window-total-width}. +@end defun + +@defun window-body-size &optional window horizontal pixelwise +This function returns the body height or body width of @var{window}. If +@var{horizontal} is omitted or @code{nil}, it is equivalent to calling +@code{window-body-height} for @var{window}; otherwise it is equivalent +to calling @code{window-body-width}. In either case, the optional +argument @var{pixelwise} is passed to the function called. @end defun For compatibility with previous versions of Emacs, @@ -579,11 +623,22 @@ @vindex window-min-width Commands that change the size of windows (@pxref{Resizing Windows}), or split them (@pxref{Splitting Windows}), obey the variables -@code{window-min-height} and @code{window-min-width}, which specify -the smallest allowable window height and width. @xref{Change -Window,,Deleting and Rearranging Windows, emacs, The GNU Emacs -Manual}. They also obey the variable @code{window-size-fixed}, with -which a window can be @dfn{fixed} in size: +@code{window-min-height} and @code{window-min-width}, which specify the +smallest allowable window height and width. They also obey the variable +@code{window-size-fixed}, with which a window can be @dfn{fixed} in +size: + +@defopt window-min-height +This option specifies the minimum total height, in lines, of any window. +Its value has to accommodate at least one text line as well as a mode +and header line and a bottom divider, if present. +@end defopt + +@defopt window-min-width +This option specifies the minimum total width, in columns, of any +window. Its value has to accommodate two text columns as well as +margins, fringes, a scroll bar and a right divider, if present. +@end defopt @defvar window-size-fixed If this buffer-local variable is non-@code{nil}, the size of any @@ -594,26 +649,13 @@ If the value is @code{height}, then only the window's height is fixed; if the value is @code{width}, then only the window's width is fixed. Any other non-@code{nil} value fixes both the width and the height. + +If this variable is @code{nil}, this does not necessarily mean that any +window showing the buffer can be resized in the desired direction. To +determine that, use the function @code{window-resizable}. +@xref{Resizing Windows}. @end defvar -@defun window-size-fixed-p &optional window horizontal -This function returns a non-@code{nil} value if @var{window}'s height -is fixed. If @var{window} is omitted or @code{nil}, it defaults to -the selected window. If the optional argument @var{horizontal} is -non-@code{nil}, the return value is non-@code{nil} if @var{window}'s -width is fixed. - -A @code{nil} return value does not necessarily mean that @var{window} -can be resized in the desired direction. To determine that, use the -function @code{window-resizable}. @xref{Resizing Windows}. -@end defun - - @xref{Coordinates and Windows}, for more functions that report the -positions of various parts of a window relative to the frame, from -which you can calculate its size. In particular, you can use the -functions @code{window-pixel-edges} and -@code{window-inside-pixel-edges} to find the size in pixels, for -graphical displays. @node Resizing Windows @section Resizing Windows @@ -653,11 +695,12 @@ @xref{Change Window,, Deleting and Rearranging Windows, emacs, The GNU Emacs Manual}. However, if the optional argument @var{ignore} is non-@code{nil}, this function ignores @code{window-min-height} and -@code{window-min-width}, as well as @code{window-size-fixed}. -Instead, it considers the minimum-height window to be one consisting -of a header (if any), a mode line, plus a text area one line tall; and -a minimum-width window as one consisting of fringes, margins, and -scroll bar (if any), plus a text area two columns wide. +@code{window-min-width}, as well as @code{window-size-fixed}. Instead, +it considers the minimum-height window to be one consisting of a header, +a mode line and a bottom divider (if any), plus a text area one line +tall; and a minimum-width window as one consisting of fringes, margins, +a scroll bar and a right divider (if any), plus a text area two columns +wide. If the optional argument @code{pixelwise} is non-@code{nil}, @var{delta} will be interpreted as pixels. === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 13:09:17 +0000 +++ lisp/ChangeLog 2014-03-05 13:50:48 +0000 @@ -1,3 +1,10 @@ +2014-03-05 Martin Rudalics + + * window.el (window-min-height, window-min-width): Rewrite + doc-strings. + (window-body-size): Add PIXELWISE argument to make it consistent + with its callees. + 2014-03-05 Juanma Barranquero * finder.el (finder-mode-map, finder-mode-syntax-table): === modified file 'lisp/window.el' --- lisp/window.el 2014-03-04 10:44:46 +0000 +++ lisp/window.el 2014-03-05 13:50:48 +0000 @@ -319,10 +319,11 @@ (frame-char-size (window-normalize-window window)))) (defcustom window-min-height 4 - "The minimum number of lines of any window. -The value has to accommodate a mode- or header-line if present. -A value less than `window-safe-min-height' is ignored. The value -of this variable is honored when windows are resized or split. + "The minimum total height, in lines, of any window. +The value has to accommodate one text line, a mode and header +line, and a bottom divider, if present. A value less than +`window-safe-min-height' is ignored. The value of this variable +is honored when windows are resized or split. Applications should never rebind this variable. To resize a window to a height less than the one specified here, an @@ -349,11 +350,11 @@ (frame-char-size (window-normalize-window window) t))) (defcustom window-min-width 10 - "The minimum number of columns of any window. -The value has to accommodate margins, fringes, or scrollbars if -present. A value less than `window-safe-min-width' is ignored. -The value of this variable is honored when windows are resized or -split. + "The minimum total width, in columns, of any window. +The value has to accommodate two text columns as well as margins, +fringes, a scroll bar and a right divider, if present. A value +less than `window-safe-min-width' is ignored. The value of this +variable is honored when windows are resized or split. Applications should never rebind this variable. To resize a window to a width less than the one specified here, an @@ -1671,16 +1672,17 @@ (= (window-pixel-width window) (window-pixel-width (frame-root-window window)))) -(defun window-body-size (&optional window horizontal) +(defun window-body-size (&optional window horizontal pixelwise) "Return the height or width of WINDOW's text area. WINDOW must be a live window and defaults to the selected one. If HORIZONTAL is omitted or nil, return the height of the text area, like `window-body-height'. Otherwise, return the width of -the text area, like `window-body-width'." +the text area, like `window-body-width'. In either case, the +optional argument PIXELWISE is passed to the functions." (if horizontal - (window-body-width window) - (window-body-height window))) + (window-body-width window pixelwise) + (window-body-height window pixelwise))) (defun window-current-scroll-bars (&optional window) "Return the current scroll bar settings for WINDOW. === modified file 'src/ChangeLog' --- src/ChangeLog 2014-03-05 06:31:57 +0000 +++ src/ChangeLog 2014-03-05 13:50:48 +0000 @@ -1,6 +1,14 @@ +2014-03-05 Martin Rudalics + + * dispnew.c (change_frame_size_1): Add new_lines instead of + new_height, the latter may be still zero if passed as such. + * window.c (Fwindow_pixel_height): Mention bottom divider in + doc-string. + 2014-03-05 Paul Eggert - Fix "resource temporarily unavailable" with xgselect (Bug#16925). + Fix "resource temporarily unavailable" with xgselect + (Bug#16925). * xgselect.c: Include . (xg_select) [!USE_GTK]: Don't lose track of errno. === modified file 'src/dispnew.c' --- src/dispnew.c 2014-01-11 09:31:09 +0000 +++ src/dispnew.c 2014-03-05 13:50:48 +0000 @@ -5539,7 +5539,7 @@ /* MSDOS frames cannot PRETEND, as they change frame size by manipulating video hardware. */ if ((FRAME_TERMCAP_P (f) && !pretend) || FRAME_MSDOS_P (f)) - FrameRows (FRAME_TTY (f)) = new_height; + FrameRows (FRAME_TTY (f)) = new_lines; } if (new_text_width != FRAME_TEXT_WIDTH (f) === modified file 'src/window.c' --- src/window.c 2014-03-01 19:15:29 +0000 +++ src/window.c 2014-03-05 13:50:48 +0000 @@ -699,9 +699,9 @@ doc: /* Return the height of window WINDOW in pixels. WINDOW must be a valid window and defaults to the selected one. -The return value includes the mode line and header line, if any. If -WINDOW is an internal window, its pixel height is the height of the -screen areas spanned by its children. */) +The return value includes the mode line and header line and the bottom +divider, if any. If WINDOW is an internal window, its pixel height is +the height of the screen areas spanned by its children. */) (Lisp_Object window) { return make_number (decode_valid_window (window)->pixel_height); ------------------------------------------------------------ revno: 116669 committer: Juanma Barranquero branch nick: trunk timestamp: Wed 2014-03-05 14:09:17 +0100 message: lisp/finder.el: Revert part of 2014-02-28 change. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 12:39:13 +0000 +++ lisp/ChangeLog 2014-03-05 13:09:17 +0000 @@ -1,3 +1,8 @@ +2014-03-05 Juanma Barranquero + + * finder.el (finder-mode-map, finder-mode-syntax-table): + Revert part of 2014-02-28 change. + 2014-03-05 Lars Ingebrigtsen * net/eww.el (eww-mode-map): [tab] doesn't work on tty. === modified file 'lisp/finder.el' --- lisp/finder.el 2014-02-28 13:59:36 +0000 +++ lisp/finder.el 2014-03-05 13:09:17 +0000 @@ -105,13 +105,13 @@ '(menu-item "Select" finder-select :help "Select item on current line in a finder buffer")) map) - "Keymap used in Finder mode.") + "Keymap used in `finder-mode'.") (defvar finder-mode-syntax-table (let ((st (make-syntax-table emacs-lisp-mode-syntax-table))) (modify-syntax-entry ?\; ". " st) st) - "Syntax table used while in Finder mode.") + "Syntax table used while in `finder-mode'.") (defvar finder-font-lock-keywords '(("`\\([^'`]+\\)'" 1 font-lock-constant-face prepend)) ------------------------------------------------------------ revno: 116668 committer: Lars Ingebrigtsen branch nick: trunk timestamp: Wed 2014-03-05 13:39:13 +0100 message: * net/eww.el (eww-mode-map): [tab] doesn't work on tty. * net/eww.el (eww-mode-map): [tab] doesn't work on tty. (eww-setup-buffer): Clear next/prev/etc more reliably. diff: === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2014-03-05 07:04:01 +0000 +++ lisp/ChangeLog 2014-03-05 12:39:13 +0000 @@ -1,3 +1,8 @@ +2014-03-05 Lars Ingebrigtsen + + * net/eww.el (eww-mode-map): [tab] doesn't work on tty. + (eww-setup-buffer): Clear next/prev/etc more reliably. + 2014-03-04 Glenn Morris * minibuffer.el (completion-hilit-commonality): === modified file 'lisp/net/eww.el' --- lisp/net/eww.el 2014-01-25 19:15:42 +0000 +++ lisp/net/eww.el 2014-03-05 12:39:13 +0000 @@ -186,12 +186,6 @@ (let ((redirect (plist-get status :redirect))) (when redirect (setq url redirect))) - (setq-local eww-next-url nil) - (setq-local eww-previous-url nil) - (setq-local eww-up-url nil) - (setq-local eww-home-url nil) - (setq-local eww-start-url nil) - (setq-local eww-contents-url nil) (let* ((headers (eww-parse-headers)) (content-type (mail-header-parse-content-type @@ -393,7 +387,13 @@ (remove-overlays) (erase-buffer)) (unless (eq major-mode 'eww-mode) - (eww-mode))) + (eww-mode)) + (setq-local eww-next-url nil) + (setq-local eww-previous-url nil) + (setq-local eww-up-url nil) + (setq-local eww-home-url nil) + (setq-local eww-start-url nil) + (setq-local eww-contents-url nil)) (defun eww-view-source () (interactive) @@ -412,8 +412,8 @@ (suppress-keymap map) (define-key map "q" 'quit-window) (define-key map "g" 'eww-reload) - (define-key map [tab] 'shr-next-link) - (define-key map [backtab] 'shr-previous-link) + (define-key map [?\t] 'shr-next-link) + (define-key map [?\M-\t] 'shr-previous-link) (define-key map [delete] 'scroll-down-command) (define-key map [?\S-\ ] 'scroll-down-command) (define-key map "\177" 'scroll-down-command) ------------------------------------------------------------ revno: 116667 committer: Glenn Morris branch nick: trunk timestamp: Tue 2014-03-04 23:41:48 -0800 message: Try to document some smie changes * doc/lispref/modes.texi (SMIE Customization): New section. * doc/lispref/elisp.texi (Top): Update detailed menu. * etc/NEWS: Related edits. diff: === modified file 'doc/lispref/ChangeLog' --- doc/lispref/ChangeLog 2014-03-04 10:44:46 +0000 +++ doc/lispref/ChangeLog 2014-03-05 07:41:48 +0000 @@ -1,3 +1,8 @@ +2014-03-05 Glenn Morris + + * modes.texi (SMIE Customization): New section. + * elisp.texi (Top): Update detailed menu. + 2014-03-04 Martin Rudalics * windows.texi (Windows and Frames): Add some missing &optional === modified file 'doc/lispref/elisp.texi' --- doc/lispref/elisp.texi 2014-03-02 03:34:36 +0000 +++ doc/lispref/elisp.texi 2014-03-05 07:41:48 +0000 @@ -903,6 +903,7 @@ * SMIE Indentation:: Specifying indentation rules. * SMIE Indentation Helpers:: Helper functions for indentation rules. * SMIE Indentation Example:: Sample indentation rules. +* SMIE Customization:: Customizing indentation. Documentation === modified file 'doc/lispref/modes.texi' --- doc/lispref/modes.texi 2014-02-27 14:09:26 +0000 +++ doc/lispref/modes.texi 2014-03-05 07:41:48 +0000 @@ -3383,6 +3383,7 @@ * SMIE Indentation:: Specifying indentation rules. * SMIE Indentation Helpers:: Helper functions for indentation rules. * SMIE Indentation Example:: Sample indentation rules. +* SMIE Customization:: Customizing indentation. @end menu @node SMIE setup @@ -3961,6 +3962,52 @@ first @code{"if"} of the sequence. @end itemize +@c In some sense this belongs more in the Emacs manual. +@node SMIE Customization +@subsubsection Customizing Indentation + +If you are using a mode whose indentation is provided by SMIE, you can +customize the indentation to suit your preferences. You can do this +on a per-mode basis (using the option @code{smie-config}), or a +per-file basis (using the function @code{smie-config-local} in a +file-local variable specification). + +@defopt smie-config +This option lets you customize indentation on a per-mode basis. +It is an alist with elements of the form @code{(@var{mode} . @var{rules})}. +For the precise form of rules, see the variable's documentation; but +you may find it easier to use the command @code{smie-config-guess}. +@end defopt + +@deffn Command smie-config-guess +This command tries to work out appropriate settings to produce +your preferred style of indentation. Simply call the command while +visiting a file that is indented with your style. +@end deffn + +@deffn Command smie-config-save +Call this command after using @code{smie-config-guess}, to save your +settings for future sessions. +@end deffn + +@deffn Command smie-config-show-indent &optional move +This command displays the rules that are used to indent the current +line. +@end deffn + +@deffn Command smie-config-set-indent +This command adds a local rule to adjust the indentation of the current line. +@end deffn + +@defun smie-config-local rules +This function adds @var{rules} as indentation rules for the current buffer. +These add to any mode-specific rules defined by the @code{smie-config} option. +To specify custom indentation rules for a specific file, add an entry +to the file's local variables of the form: +@code{eval: (smie-config-local '(@var{rules}))}. +@end defun + + @node Desktop Save Mode @section Desktop Save Mode @cindex desktop save mode === modified file 'etc/NEWS' --- etc/NEWS 2014-03-04 10:44:46 +0000 +++ etc/NEWS 2014-03-05 07:41:48 +0000 @@ -904,11 +904,17 @@ ** SMIE -*** You can customize the indentation of modes that use SMIE via `smie-config'. ++++ +*** You can customize the SMIE indentation of a mode via `smie-config'. The command `smie-config-guess' can help you derive the appropriate indentation settings, if you provide it with an indented sample file. Use `smie-config-save' to save the result. ++++ +*** You can customize the SMIE indentation of a file by adding an entry to +the file's local variables of the form: `eval: (smie-config-local '(RULES)'. + ++++ *** New commands `smie-config-show-indent' and `smie-config-set-indent'. ---