# HG changeset patch # User Richard M. Stallman # Date 1020145349 0 # Node ID 4359b383982c6e5d0f2401af2bcc3b68c39d0e97 # Parent beb07a65a44588e4c85e97a2538a16a45bc65a46 *** empty log message *** diff -r beb07a65a445 -r 4359b383982c etc/NEWS --- a/etc/NEWS Tue Apr 30 04:59:24 2002 +0000 +++ b/etc/NEWS Tue Apr 30 05:42:29 2002 +0000 @@ -79,6 +79,7 @@ charset and some other latin-N charset or unicode. You can force a more complete unification by calling (unify-8859-on-decoding-mode 1). +--- ** The scrollbar under Motif has a smoother drag-scrolling. On the other hand, the size of the thumb does not represent the actual amount of text shown any more (only a crude approximation of it). @@ -101,6 +102,7 @@ ** PO translation files are decoded according to their MIME headers when Emacs visits them. +--- ** The game `mpuz' is enhanced. `mpuz' now allows the 2nd factor not to have two identical digits. By @@ -135,6 +137,7 @@ many columns to scroll. If the value is a floating-point number, it gives the fraction of the window's width to scroll the window. ++++ ** The user option `tex-start-options-string' has been replaced by two new user options: `tex-start-options', which should hold command-line options to feed to TeX, and `tex-start-commands' which should hold @@ -144,6 +147,7 @@ ** The variable `automatic-hscrolling' was renamed to `auto-hscroll-mode'. The old name is still available as an alias. ++++ ** New display feature: focus follows mouse. If you set the variable mouse-autoselect-window to non-nil value, moving the mouse to a different Emacs window will select that window (minibuffer window can be selected @@ -162,12 +166,14 @@ buffers to search by their filename. Internally, Occur mode has been rewritten, and now uses font-lock, among other changes. ++++ ** Emacs normally highlights mouse sensitive text whenever the mouse is over the text. By setting the new variable `mouse-highlight', you can optionally enable mouse highlighting only after you move the mouse, so that highlighting disappears when you press a key. You can also disable mouse highlighting. ++++ ** font-lock: in modes like C and Lisp where the fontification assumes that an open-paren in column 0 is always outside of any string or comment, font-lock now highlights any such open-paren-in-column-zero in bold-red @@ -197,8 +203,9 @@ ** Speedbar has moved from the "Tools" top level menu to "Show/Hide". -** Emacs can now indicate in the mode-line the presence of new e-mails in -directory in addition to file. See the documentation of the user option ++++ +** Emacs can now indicate in the mode-line the presence of new e-mails +in a directory or in a file. See the documentation of the user option `display-time-mail-directory'. +++ @@ -562,13 +569,16 @@ This option can be disabled, to avoid the normal behaviour of isearch which puts calls to `isearch-resume' in the command history. +--- ** When the *scratch* buffer is recreated, its mode is set from initial-major-mode, which normally is lisp-interaction-mode, instead of using default-major-mode. +--- ** Byte compiler warning and error messages have been brought more in line with the output of other GNU tools. +--- ** Lisp-mode now uses font-lock-doc-face for the docstrings. ** perl-mode has a new variable `perl-indent-continued-arguments'. @@ -592,23 +602,28 @@ which do not end in a slash are never considered when a completion candidate is a directory. ++++ ** New user option `inhibit-startup-buffer-menu'. When loading many files, for instance with `emacs *', Emacs normally displays a buffer menu. This option turns the buffer menu off. +--- ** Rmail now displays 5-digit message ids in its summary buffer. ** When using M-x revert-buffer in a compilation buffer to rerun a compilation, it is now made sure that the compilation buffer is reused in case it has been renamed. +--- ** On MS Windows, the "system caret" now follows the cursor. This enables Emacs to work better with programs that need to track the cursor, for example screen magnifiers and text to speech programs. +--- ** Tooltips now work on MS Windows. See the Emacs 21.1 NEWS entry for tooltips for details. +--- ** Some images are now supported on Windows. PBM and XBM images are supported, other formats which require external libraries may be supported in future. @@ -632,16 +647,6 @@ --- ** A French translation of the Emacs Tutorial is available. ---- -** Indentation of simple and extended loop forms has been added to the -cl-indent package. The new user options -`lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and -`lisp-simple-loop-indentation' can be used to customize the -indentation of keywords and forms in loop forms. - -** Indentation of backquoted forms has been made customizable in the -cl-indent package. See the new user option `lisp-backquote-indentation'. - ** When emacs is configured to use `xaw3d' scroll-bars, emacs will tell the scroll-bar library which colors to use for the bevels, to prevent the library from using dithering. @@ -704,6 +709,18 @@ Manual. A menu item was added to the menu bar that makes it easy accessible (Help->More Manuals->Emacs Lisp Reference). +--- +** Indentation of simple and extended loop forms has been added to the +cl-indent package. The new user options +`lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and +`lisp-simple-loop-indentation' can be used to customize the +indentation of keywords and forms in loop forms. + +--- +** Indentation of backquoted forms has been made customizable in the +cl-indent package. See the new user option `lisp-backquote-indentation'. + +--- *** The Introduction to Programming in Emacs Lisp manual is now part of the distribution. @@ -725,36 +742,19 @@ change the `fill-column', `window-margins' and `tab-stop-list' settings. -*** The reveal.el package provides the minor modes `reveal-mode' and -`global-reveal-mode' which will make text visible on the fly as you +*** The minor mode Reveal mode makes text visible on the fly as you move your cursor into hidden region of the buffer. It should work with any package that uses overlays to hide parts of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... -*** master-mode.el implements a minor mode for scrolling a slave -buffer without leaving your current buffer, the master buffer. - -It can be used by sql.el, for example: the SQL buffer is the master -and its SQLi buffer is the slave. This allows you to scroll the SQLi -buffer containing the output from the SQL buffer containing the -commands. - -This is how to use sql.el and master.el together: the variable -sql-buffer contains the slave buffer. It is a local variable in the -SQL buffer. - -(add-hook 'sql-mode-hook - (function (lambda () - (master-mode t) - (master-set-slave sql-buffer)))) -(add-hook 'sql-set-sqli-hook - (function (lambda () - (master-set-slave sql-buffer)))) - +There is also Global Reveal mode which affects all buffers. + +--- *** The new package ibuffer provides a powerful, completely customizable replacement for buff-menu.el. -** Support for `magic cooky' standout modes has been removed. +--- +** Support for `magic cookie' standout modes has been removed. Emacs will still work on terminals that require magic cookies in order to use standout mode, however they will not be able to display mode-lines in inverse-video. @@ -975,6 +975,26 @@ for a function that could be called with `call-interactively', and does not return t for keyboard macros. +** master-mode.el implements a minor mode for scrolling a slave +buffer without leaving your current buffer, the master buffer. + +It can be used by sql.el, for example: the SQL buffer is the master +and its SQLi buffer is the slave. This allows you to scroll the SQLi +buffer containing the output from the SQL buffer containing the +commands. + +This is how to use sql.el and master.el together: the variable +sql-buffer contains the slave buffer. It is a local variable in the +SQL buffer. + +(add-hook 'sql-mode-hook + (function (lambda () + (master-mode t) + (master-set-slave sql-buffer)))) +(add-hook 'sql-set-sqli-hook + (function (lambda () + (master-set-slave sql-buffer)))) + ** File local variables. A file local variables list cannot specify a string with text diff -r beb07a65a445 -r 4359b383982c lisp/descr-text.el --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lisp/descr-text.el Tue Apr 30 05:42:29 2002 +0000 @@ -0,0 +1,187 @@ +;;; facemenu.el --- create a face menu for interactively adding fonts to text + +;; Copyright (c) 1994, 1995, 1996, 2001, 2002 Free Software Foundation, Inc. + +;; Author: Boris Goldowsky +;; Keywords: faces + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. + +;;; Commentary: + +;;; Describe-Text Mode. + +;;; Code: + +(defun describe-text-done () + "Delete the current window or bury the current buffer." + (interactive) + (if (> (count-windows) 1) + (delete-window) + (bury-buffer))) + +(defvar describe-text-mode-map + (let ((map (make-sparse-keymap))) + (set-keymap-parent map widget-keymap) + map) + "Keymap for `describe-text-mode'.") + +(defcustom describe-text-mode-hook nil + "List of hook functions ran by `describe-text-mode'." + :type 'hook) + +(defun describe-text-mode () + "Major mode for buffers created by `describe-text-at'. + +\\{describe-text-mode-map} +Entry to this mode calls the value of `describe-text-mode-hook' +if that value is non-nil." + (kill-all-local-variables) + (setq major-mode 'describe-text-mode + mode-name "Describe-Text") + (use-local-map describe-text-mode-map) + (widget-setup) + (run-hooks 'describe-text-mode-hook)) + +;;; Describe-Text Utilities. + +(defun describe-text-widget (widget) + "Insert text to describe WIDGET in the current buffer." + (widget-create 'link + :notify `(lambda (&rest ignore) + (widget-browse ',widget)) + (format "%S" (if (symbolp widget) + widget + (car widget)))) + (widget-insert " ") + (widget-create 'info-link :tag "widget" "(widget)Top")) + +(defun describe-text-sexp (sexp) + "Insert a short description of SEXP in the current buffer." + (let ((pp (condition-case signal + (pp-to-string sexp) + (error (prin1-to-string signal))))) + (when (string-match "\n\\'" pp) + (setq pp (substring pp 0 (1- (length pp))))) + (if (cond ((string-match "\n" pp) + nil) + ((> (length pp) (- (window-width) (current-column))) + nil) + (t t)) + (widget-insert pp) + (widget-create 'push-button + :tag "show" + :action (lambda (widget &optional event) + (with-output-to-temp-buffer + "*Pp Eval Output*" + (princ (widget-get widget :value)))) + pp)))) + + +(defun describe-text-properties (properties) + "Insert a description of PROPERTIES in the current buffer. +PROPERTIES should be a list of overlay or text properties. +The `category' property is made into a widget button that call +`describe-text-category' when pushed." + (while properties + (widget-insert (format " %-20s " (car properties))) + (let ((key (nth 0 properties)) + (value (nth 1 properties))) + (cond ((eq key 'category) + (widget-create 'link + :notify `(lambda (&rest ignore) + (describe-text-category ',value)) + (format "%S" value))) + ((widgetp value) + (describe-text-widget value)) + (t + (describe-text-sexp value)))) + (widget-insert "\n") + (setq properties (cdr (cdr properties))))) + +;;; Describe-Text Commands. + +(defun describe-text-category (category) + "Describe a text property category." + (interactive "S") + (when (get-buffer "*Text Category*") + (kill-buffer "*Text Category*")) + (save-excursion + (with-output-to-temp-buffer "*Text Category*" + (set-buffer "*Text Category*") + (widget-insert "Category " (format "%S" category) ":\n\n") + (describe-text-properties (symbol-plist category)) + (describe-text-mode) + (goto-char (point-min))))) + +;;;###autoload +(defun describe-text-at (pos) + "Describe widgets, buttons, overlays and text properties at POS." + (interactive "d") + (when (eq (current-buffer) (get-buffer "*Text Description*")) + (error "Can't do self inspection")) + (let* ((properties (text-properties-at pos)) + (overlays (overlays-at pos)) + overlay + (wid-field (get-char-property pos 'field)) + (wid-button (get-char-property pos 'button)) + (wid-doc (get-char-property pos 'widget-doc)) + ;; If button.el is not loaded, we have no buttons in the text. + (button (and (fboundp 'button-at) (button-at pos))) + (button-type (and button (button-type button))) + (button-label (and button (button-label button))) + (widget (or wid-field wid-button wid-doc))) + (if (not (or properties overlays)) + (message "This is plain text.") + (when (get-buffer "*Text Description*") + (kill-buffer "*Text Description*")) + (save-excursion + (with-output-to-temp-buffer "*Text Description*" + (set-buffer "*Text Description*") + (widget-insert "Text content at position " (format "%d" pos) ":\n\n") + ;; Widgets + (when (widgetp widget) + (widget-insert (cond (wid-field "This is an editable text area") + (wid-button "This is an active area") + (wid-doc "This is documentation text"))) + (widget-insert " of a ") + (describe-text-widget widget) + (widget-insert ".\n\n")) + ;; Buttons + (when (and button (not (widgetp wid-button))) + (widget-insert "Here is a " (format "%S" button-type) + " button labeled `" button-label "'.\n\n")) + ;; Overlays + (when overlays + (if (eq (length overlays) 1) + (widget-insert "There is an overlay here:\n") + (widget-insert "There are " (format "%d" (length overlays)) + " overlays here:\n")) + (dolist (overlay overlays) + (widget-insert " From " (format "%d" (overlay-start overlay)) + " to " (format "%d" (overlay-end overlay)) "\n") + (describe-text-properties (overlay-properties overlay))) + (widget-insert "\n")) + ;; Text properties + (when properties + (widget-insert "There are text properties here:\n") + (describe-text-properties properties)) + (describe-text-mode) + (goto-char (point-min))))))) + +;;; descr-text.el ends here