Mercurial > emacs
comparison etc/NEWS @ 45022:4359b383982c
*** empty log message ***
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Tue, 30 Apr 2002 05:42:29 +0000 |
parents | dbde822f9021 |
children | bb7bdd25e045 |
comparison
equal
deleted
inserted
replaced
45021:beb07a65a445 | 45022:4359b383982c |
---|---|
77 ** Limited support for charset unification has been added. | 77 ** Limited support for charset unification has been added. |
78 By default, Emacs now knows how to translate latin-N chars between their | 78 By default, Emacs now knows how to translate latin-N chars between their |
79 charset and some other latin-N charset or unicode. You can force a | 79 charset and some other latin-N charset or unicode. You can force a |
80 more complete unification by calling (unify-8859-on-decoding-mode 1). | 80 more complete unification by calling (unify-8859-on-decoding-mode 1). |
81 | 81 |
82 --- | |
82 ** The scrollbar under Motif has a smoother drag-scrolling. | 83 ** The scrollbar under Motif has a smoother drag-scrolling. |
83 On the other hand, the size of the thumb does not represent the actual | 84 On the other hand, the size of the thumb does not represent the actual |
84 amount of text shown any more (only a crude approximation of it). | 85 amount of text shown any more (only a crude approximation of it). |
85 | 86 |
86 +++ | 87 +++ |
99 | 100 |
100 --- | 101 --- |
101 ** PO translation files are decoded according to their MIME headers | 102 ** PO translation files are decoded according to their MIME headers |
102 when Emacs visits them. | 103 when Emacs visits them. |
103 | 104 |
105 --- | |
104 ** The game `mpuz' is enhanced. | 106 ** The game `mpuz' is enhanced. |
105 | 107 |
106 `mpuz' now allows the 2nd factor not to have two identical digits. By | 108 `mpuz' now allows the 2nd factor not to have two identical digits. By |
107 default, all trivial operations involving whole lines are performed | 109 default, all trivial operations involving whole lines are performed |
108 automatically. The game uses faces for better visual feedback. | 110 automatically. The game uses faces for better visual feedback. |
133 window edge. If its value is zero, the default, Emacs scrolls the | 135 window edge. If its value is zero, the default, Emacs scrolls the |
134 window so as to center point. If its value is an integer, it says how | 136 window so as to center point. If its value is an integer, it says how |
135 many columns to scroll. If the value is a floating-point number, it | 137 many columns to scroll. If the value is a floating-point number, it |
136 gives the fraction of the window's width to scroll the window. | 138 gives the fraction of the window's width to scroll the window. |
137 | 139 |
140 +++ | |
138 ** The user option `tex-start-options-string' has been replaced | 141 ** The user option `tex-start-options-string' has been replaced |
139 by two new user options: `tex-start-options', which should hold | 142 by two new user options: `tex-start-options', which should hold |
140 command-line options to feed to TeX, and `tex-start-commands' which should hold | 143 command-line options to feed to TeX, and `tex-start-commands' which should hold |
141 TeX commands to use at startup. | 144 TeX commands to use at startup. |
142 | 145 |
143 +++ | 146 +++ |
144 ** The variable `automatic-hscrolling' was renamed to `auto-hscroll-mode'. | 147 ** The variable `automatic-hscrolling' was renamed to `auto-hscroll-mode'. |
145 The old name is still available as an alias. | 148 The old name is still available as an alias. |
146 | 149 |
150 +++ | |
147 ** New display feature: focus follows mouse. If you set the variable | 151 ** New display feature: focus follows mouse. If you set the variable |
148 mouse-autoselect-window to non-nil value, moving the mouse to a different | 152 mouse-autoselect-window to non-nil value, moving the mouse to a different |
149 Emacs window will select that window (minibuffer window can be selected | 153 Emacs window will select that window (minibuffer window can be selected |
150 only when it is active). The default is nil, so that this feature is not | 154 only when it is active). The default is nil, so that this feature is not |
151 enabled. | 155 enabled. |
160 search multiple buffers. There is also a new command | 164 search multiple buffers. There is also a new command |
161 `multi-occur-by-filename-regexp' which allows you to specify the | 165 `multi-occur-by-filename-regexp' which allows you to specify the |
162 buffers to search by their filename. Internally, Occur mode has been | 166 buffers to search by their filename. Internally, Occur mode has been |
163 rewritten, and now uses font-lock, among other changes. | 167 rewritten, and now uses font-lock, among other changes. |
164 | 168 |
169 +++ | |
165 ** Emacs normally highlights mouse sensitive text whenever the mouse | 170 ** Emacs normally highlights mouse sensitive text whenever the mouse |
166 is over the text. By setting the new variable `mouse-highlight', you | 171 is over the text. By setting the new variable `mouse-highlight', you |
167 can optionally enable mouse highlighting only after you move the | 172 can optionally enable mouse highlighting only after you move the |
168 mouse, so that highlighting disappears when you press a key. You can | 173 mouse, so that highlighting disappears when you press a key. You can |
169 also disable mouse highlighting. | 174 also disable mouse highlighting. |
170 | 175 |
176 +++ | |
171 ** font-lock: in modes like C and Lisp where the fontification assumes that | 177 ** font-lock: in modes like C and Lisp where the fontification assumes that |
172 an open-paren in column 0 is always outside of any string or comment, | 178 an open-paren in column 0 is always outside of any string or comment, |
173 font-lock now highlights any such open-paren-in-column-zero in bold-red | 179 font-lock now highlights any such open-paren-in-column-zero in bold-red |
174 if it is inside a string or a comment, to indicate that it can cause | 180 if it is inside a string or a comment, to indicate that it can cause |
175 trouble with fontification and/or indentation. | 181 trouble with fontification and/or indentation. |
195 a menu-item to toggle displaying of current date and time, current line | 201 a menu-item to toggle displaying of current date and time, current line |
196 and column number in the mode-line. | 202 and column number in the mode-line. |
197 | 203 |
198 ** Speedbar has moved from the "Tools" top level menu to "Show/Hide". | 204 ** Speedbar has moved from the "Tools" top level menu to "Show/Hide". |
199 | 205 |
200 ** Emacs can now indicate in the mode-line the presence of new e-mails in | 206 +++ |
201 directory in addition to file. See the documentation of the user option | 207 ** Emacs can now indicate in the mode-line the presence of new e-mails |
208 in a directory or in a file. See the documentation of the user option | |
202 `display-time-mail-directory'. | 209 `display-time-mail-directory'. |
203 | 210 |
204 +++ | 211 +++ |
205 ** The new option `Info-scroll-prefer-subnodes' causes Info to behave | 212 ** The new option `Info-scroll-prefer-subnodes' causes Info to behave |
206 like the stand-alone Info reader (from the GNU Texinfo package) as far | 213 like the stand-alone Info reader (from the GNU Texinfo package) as far |
560 | 567 |
561 ** New user option `isearch-resume-enabled'. | 568 ** New user option `isearch-resume-enabled'. |
562 This option can be disabled, to avoid the normal behaviour of isearch | 569 This option can be disabled, to avoid the normal behaviour of isearch |
563 which puts calls to `isearch-resume' in the command history. | 570 which puts calls to `isearch-resume' in the command history. |
564 | 571 |
572 --- | |
565 ** When the *scratch* buffer is recreated, its mode is set from | 573 ** When the *scratch* buffer is recreated, its mode is set from |
566 initial-major-mode, which normally is lisp-interaction-mode, | 574 initial-major-mode, which normally is lisp-interaction-mode, |
567 instead of using default-major-mode. | 575 instead of using default-major-mode. |
568 | 576 |
577 --- | |
569 ** Byte compiler warning and error messages have been brought more | 578 ** Byte compiler warning and error messages have been brought more |
570 in line with the output of other GNU tools. | 579 in line with the output of other GNU tools. |
571 | 580 |
581 --- | |
572 ** Lisp-mode now uses font-lock-doc-face for the docstrings. | 582 ** Lisp-mode now uses font-lock-doc-face for the docstrings. |
573 | 583 |
574 ** perl-mode has a new variable `perl-indent-continued-arguments'. | 584 ** perl-mode has a new variable `perl-indent-continued-arguments'. |
575 | 585 |
576 ** `special-display-buffer-names' and `special-display-regexps' now | 586 ** `special-display-buffer-names' and `special-display-regexps' now |
590 slash `/', it indicates a subdirectory that should be ignored when | 600 slash `/', it indicates a subdirectory that should be ignored when |
591 completing file names. Elements of `completion-ignored-extensions' | 601 completing file names. Elements of `completion-ignored-extensions' |
592 which do not end in a slash are never considered when a completion | 602 which do not end in a slash are never considered when a completion |
593 candidate is a directory. | 603 candidate is a directory. |
594 | 604 |
605 +++ | |
595 ** New user option `inhibit-startup-buffer-menu'. | 606 ** New user option `inhibit-startup-buffer-menu'. |
596 When loading many files, for instance with `emacs *', Emacs normally | 607 When loading many files, for instance with `emacs *', Emacs normally |
597 displays a buffer menu. This option turns the buffer menu off. | 608 displays a buffer menu. This option turns the buffer menu off. |
598 | 609 |
610 --- | |
599 ** Rmail now displays 5-digit message ids in its summary buffer. | 611 ** Rmail now displays 5-digit message ids in its summary buffer. |
600 | 612 |
601 ** When using M-x revert-buffer in a compilation buffer to rerun a | 613 ** When using M-x revert-buffer in a compilation buffer to rerun a |
602 compilation, it is now made sure that the compilation buffer is reused | 614 compilation, it is now made sure that the compilation buffer is reused |
603 in case it has been renamed. | 615 in case it has been renamed. |
604 | 616 |
617 --- | |
605 ** On MS Windows, the "system caret" now follows the cursor. | 618 ** On MS Windows, the "system caret" now follows the cursor. |
606 This enables Emacs to work better with programs that need to track | 619 This enables Emacs to work better with programs that need to track |
607 the cursor, for example screen magnifiers and text to speech programs. | 620 the cursor, for example screen magnifiers and text to speech programs. |
608 | 621 |
622 --- | |
609 ** Tooltips now work on MS Windows. | 623 ** Tooltips now work on MS Windows. |
610 See the Emacs 21.1 NEWS entry for tooltips for details. | 624 See the Emacs 21.1 NEWS entry for tooltips for details. |
611 | 625 |
626 --- | |
612 ** Some images are now supported on Windows. | 627 ** Some images are now supported on Windows. |
613 PBM and XBM images are supported, other formats which require external | 628 PBM and XBM images are supported, other formats which require external |
614 libraries may be supported in future. | 629 libraries may be supported in future. |
615 | 630 |
616 ** Pointing devices with more than 3 buttons are now supported on MS Windows. | 631 ** Pointing devices with more than 3 buttons are now supported on MS Windows. |
630 ** A French translation of the `Emacs Survival Guide' is available. | 645 ** A French translation of the `Emacs Survival Guide' is available. |
631 | 646 |
632 --- | 647 --- |
633 ** A French translation of the Emacs Tutorial is available. | 648 ** A French translation of the Emacs Tutorial is available. |
634 | 649 |
635 --- | |
636 ** Indentation of simple and extended loop forms has been added to the | |
637 cl-indent package. The new user options | |
638 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and | |
639 `lisp-simple-loop-indentation' can be used to customize the | |
640 indentation of keywords and forms in loop forms. | |
641 | |
642 ** Indentation of backquoted forms has been made customizable in the | |
643 cl-indent package. See the new user option `lisp-backquote-indentation'. | |
644 | |
645 ** When emacs is configured to use `xaw3d' scroll-bars, emacs will | 650 ** When emacs is configured to use `xaw3d' scroll-bars, emacs will |
646 tell the scroll-bar library which colors to use for the bevels, to | 651 tell the scroll-bar library which colors to use for the bevels, to |
647 prevent the library from using dithering. | 652 prevent the library from using dithering. |
648 | 653 |
649 ** New modes and packages | 654 ** New modes and packages |
702 The ELisp reference manual in Info format is built as part of the | 707 The ELisp reference manual in Info format is built as part of the |
703 Emacs build procedure and installed together with the Emacs User | 708 Emacs build procedure and installed together with the Emacs User |
704 Manual. A menu item was added to the menu bar that makes it easy | 709 Manual. A menu item was added to the menu bar that makes it easy |
705 accessible (Help->More Manuals->Emacs Lisp Reference). | 710 accessible (Help->More Manuals->Emacs Lisp Reference). |
706 | 711 |
712 --- | |
713 ** Indentation of simple and extended loop forms has been added to the | |
714 cl-indent package. The new user options | |
715 `lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and | |
716 `lisp-simple-loop-indentation' can be used to customize the | |
717 indentation of keywords and forms in loop forms. | |
718 | |
719 --- | |
720 ** Indentation of backquoted forms has been made customizable in the | |
721 cl-indent package. See the new user option `lisp-backquote-indentation'. | |
722 | |
723 --- | |
707 *** The Introduction to Programming in Emacs Lisp manual is now part of | 724 *** The Introduction to Programming in Emacs Lisp manual is now part of |
708 the distribution. | 725 the distribution. |
709 | 726 |
710 This manual is now part of the standard distribution and is installed, | 727 This manual is now part of the standard distribution and is installed, |
711 together with the Emacs User Manual, into the Info directory. A menu | 728 together with the Emacs User Manual, into the Info directory. A menu |
723 *** The ruler-mode.el library provides a minor mode for displaying an | 740 *** The ruler-mode.el library provides a minor mode for displaying an |
724 "active" ruler in the header line. You can use the mouse to visually | 741 "active" ruler in the header line. You can use the mouse to visually |
725 change the `fill-column', `window-margins' and `tab-stop-list' | 742 change the `fill-column', `window-margins' and `tab-stop-list' |
726 settings. | 743 settings. |
727 | 744 |
728 *** The reveal.el package provides the minor modes `reveal-mode' and | 745 *** The minor mode Reveal mode makes text visible on the fly as you |
729 `global-reveal-mode' which will make text visible on the fly as you | |
730 move your cursor into hidden region of the buffer. | 746 move your cursor into hidden region of the buffer. |
731 It should work with any package that uses overlays to hide parts | 747 It should work with any package that uses overlays to hide parts |
732 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... | 748 of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ... |
733 | 749 |
734 *** master-mode.el implements a minor mode for scrolling a slave | 750 There is also Global Reveal mode which affects all buffers. |
751 | |
752 --- | |
753 *** The new package ibuffer provides a powerful, completely | |
754 customizable replacement for buff-menu.el. | |
755 | |
756 --- | |
757 ** Support for `magic cookie' standout modes has been removed. | |
758 Emacs will still work on terminals that require magic cookies in order | |
759 to use standout mode, however they will not be able to display | |
760 mode-lines in inverse-video. | |
761 | |
762 | |
763 * Lisp Changes in Emacs 21.4 | |
764 | |
765 ** The `defmacro' form may contain declarations specifying how to | |
766 indent the macro in Lisp mode and how to debug it with Edebug. The | |
767 syntax of defmacro has been extended to | |
768 | |
769 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) | |
770 | |
771 DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The | |
772 declaration specifiers supported are: | |
773 | |
774 (indent INDENT) | |
775 Set NAME's `lisp-indent-function' property to INDENT. | |
776 | |
777 (edebug DEBUG) | |
778 Set NAME's `edebug-form-spec' property to DEBUG. (This is | |
779 equivalent to writing a `def-edebug-spec' for the macro. | |
780 | |
781 ** Interactive commands can be remapped through keymaps. | |
782 | |
783 This is an alternative to using defadvice or substitute-key-definition | |
784 to modify the behaviour of a key binding using the normal keymap | |
785 binding and lookup functionality. | |
786 | |
787 When a key sequence is bound to a command, and that command is | |
788 remapped to another command, that command is run instead of the | |
789 original command. | |
790 | |
791 Example: | |
792 Suppose that minor mode my-mode has defined the commands | |
793 my-kill-line and my-kill-word, and it wants C-k (and any other key | |
794 bound to kill-line) to run the command my-kill-line instead of | |
795 kill-line, and likewise it wants to run my-kill-word instead of | |
796 kill-word. | |
797 | |
798 Instead of rebinding C-k and the other keys in the minor mode map, | |
799 command remapping allows you to directly map kill-line into | |
800 my-kill-line and kill-word into my-kill-word through the minor mode | |
801 map using define-key: | |
802 | |
803 (define-key my-mode-map [remap kill-line] 'my-kill-line) | |
804 (define-key my-mode-map [remap kill-word] 'my-kill-word) | |
805 | |
806 Now, when my-mode is enabled, and the user enters C-k or M-d, | |
807 the commands my-kill-line and my-kill-word are run. | |
808 | |
809 Notice that only one level of remapping is supported. In the above | |
810 example, this means that if my-kill-line is remapped to other-kill, | |
811 then C-k still runs my-kill-line. | |
812 | |
813 The following changes have been made to provide command remapping: | |
814 | |
815 - Command remappings are defined using `define-key' with a prefix-key | |
816 `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | |
817 to definition DEF in keymap MAP. The definition is not limited to | |
818 another command; it can be anything accepted for a normal binding. | |
819 | |
820 - The new function `remap-command' returns the binding for a remapped | |
821 command in the current keymaps, or nil if it isn't remapped. | |
822 | |
823 - key-binding now remaps interactive commands unless the optional | |
824 third argument NO-REMAP is non-nil. | |
825 | |
826 - where-is-internal now returns nil for a remapped command (e.g. | |
827 kill-line if my-mode is enabled), and the actual key binding for | |
828 the command it is remapped to (e.g. C-k for my-kill-line). | |
829 It also has a new optional fifth argument, NO-REMAP, which inhibits | |
830 remapping if non-nil (e.g. it returns C-k for kill-line and | |
831 <kill-line> for my-kill-line). | |
832 | |
833 - The new variable `this-original-command' contains the original | |
834 command before remapping. It is equal to `this-command' when the | |
835 command was not remapped. | |
836 | |
837 ** Atomic change groups. | |
838 | |
839 To perform some changes in the current buffer "atomically" so that | |
840 they either all succeed or are all undone, use `atomic-change-group' | |
841 around the code that makes changes. For instance: | |
842 | |
843 (atomic-change-group | |
844 (insert foo) | |
845 (delete-region x y)) | |
846 | |
847 If an error (or other nonlocal exit) occurs inside the body of | |
848 `atomic-change-group', it unmakes all the changes in that buffer that | |
849 were during the execution of the body. The change group has no effect | |
850 on any other buffers--any such changes remain. | |
851 | |
852 If you need something more sophisticated, you can directly call the | |
853 lower-level functions that `atomic-change-group' uses. Here is how. | |
854 | |
855 To set up a change group for one buffer, call `prepare-change-group'. | |
856 Specify the buffer as argument; it defaults to the current buffer. | |
857 This function returns a "handle" for the change group. You must save | |
858 the handle to activate the change group and then finish it. | |
859 | |
860 Before you change the buffer again, you must activate the change | |
861 group. Pass the handle to `activate-change-group' afterward to | |
862 do this. | |
863 | |
864 After you make the changes, you must finish the change group. You can | |
865 either accept the changes or cancel them all. Call | |
866 `accept-change-group' to accept the changes in the group as final; | |
867 call `cancel-change-group' to undo them all. | |
868 | |
869 You should use `unwind-protect' to make sure the group is always | |
870 finished. The call to `activate-change-group' should be inside the | |
871 `unwind-protect', in case the user types C-g just after it runs. | |
872 (This is one reason why `prepare-change-group' and | |
873 `activate-change-group' are separate functions.) Once you finish the | |
874 group, don't use the handle again--don't try to finish the same group | |
875 twice. | |
876 | |
877 To make a multibuffer change group, call `prepare-change-group' once | |
878 for each buffer you want to cover, then use `nconc' to combine the | |
879 returned values, like this: | |
880 | |
881 (nconc (prepare-change-group buffer-1) | |
882 (prepare-change-group buffer-2)) | |
883 | |
884 You can then activate the multibuffer change group with a single call | |
885 to `activate-change-group', and finish it with a single call to | |
886 `accept-change-group' or `cancel-change-group'. | |
887 | |
888 Nested use of several change groups for the same buffer works as you | |
889 would expect. Non-nested use of change groups for the same buffer | |
890 will lead to undesirable results, so don't let it happen; the first | |
891 change group you start for any given buffer should be the last one | |
892 finished. | |
893 | |
894 ** New function remove-list-of-text-properties. | |
895 | |
896 The new function `remove-list-of-text-properties' is almost the same | |
897 as `remove-text-properties'. The only difference is that it takes | |
898 a list of property names as argument rather than a property list. | |
899 | |
900 ** New functions insert-for-yank and insert-buffer-substring-as-yank. | |
901 | |
902 These functions work like `insert' and `insert-buffer-substring', but | |
903 removes the text properties in the `yank-excluded-properties' list. | |
904 | |
905 ** New function insert-buffer-substring-no-properties. | |
906 | |
907 ** Enhanced networking support. | |
908 | |
909 *** There is a new `make-network-process' function which supports | |
910 opening of stream and datagram connections to a server, as well as | |
911 create a stream or datagram server inside emacs. | |
912 | |
913 - A server is started using :server t arg. | |
914 - Datagram connection is selected using :type 'datagram arg. | |
915 - A server can open on a random port using :service t arg. | |
916 - Local sockets are supported using :family 'local arg. | |
917 - Non-blocking connect is supported using :nowait t arg. | |
918 | |
919 To test for the availability of a given feature, use featurep like this: | |
920 (featurep 'make-network-process '(:type datagram)) | |
921 | |
922 *** Original open-network-stream is now emulated using make-network-process. | |
923 | |
924 *** New function open-network-stream-nowait. | |
925 | |
926 This function initiates a non-blocking connect and returns immediately | |
927 before the connection is established. The filter and sentinel | |
928 functions can be specified as arguments to open-network-stream-nowait. | |
929 When the non-blocking connect completes, the sentinel is called with | |
930 the status matching "open" or "failed". | |
931 | |
932 *** New function open-network-stream-server. | |
933 MORE INFO NEEDED HERE. | |
934 | |
935 *** New functions process-datagram-address and set-process-datagram-address. | |
936 MORE INFO NEEDED HERE. | |
937 | |
938 *** By default, the function process-contact still returns (HOST SERVICE) | |
939 for a network process. Using the new optional KEY arg, the complete list | |
940 of network process properties or a specific property can be selected. | |
941 | |
942 Using :local and :remote as the KEY, the address of the local or | |
943 remote end-point is returned. An Inet address is represented as a 5 | |
944 element vector, where the first 4 elements contain the IP address and | |
945 the fifth is the port number. | |
946 | |
947 *** Network processes can now be stopped and restarted with | |
948 `stop-process' and `continue-process'. For a server process, no | |
949 connections are accepted in the stopped state. For a client process, | |
950 no input is received in the stopped state. | |
951 | |
952 *** Function list-processes now has an optional argument; if non-nil, | |
953 only the processes whose query-on-exit flag is set are listed. | |
954 | |
955 *** New set-process-query-on-exit-flag and process-query-on-exit-flag | |
956 functions. The existing process-kill-without-query function is still | |
957 supported, but new code should use the new functions. | |
958 | |
959 ** New function substring-no-properties. | |
960 | |
961 ** New function minibuffer-selected-window. | |
962 | |
963 ** New function `call-process-shell-command'. | |
964 | |
965 ** The dummy function keys made by easymenu | |
966 are now always lower case. If you specify the | |
967 menu item name "Ada", for instance, it uses `ada' | |
968 as the "key" bound by that key binding. | |
969 | |
970 This is relevant only if Lisp code looks for | |
971 the bindings that were made with easymenu. | |
972 | |
973 ** The function `commandp' takes an additional optional | |
974 argument. If it is non-nil, then `commandp' checks | |
975 for a function that could be called with `call-interactively', | |
976 and does not return t for keyboard macros. | |
977 | |
978 ** master-mode.el implements a minor mode for scrolling a slave | |
735 buffer without leaving your current buffer, the master buffer. | 979 buffer without leaving your current buffer, the master buffer. |
736 | 980 |
737 It can be used by sql.el, for example: the SQL buffer is the master | 981 It can be used by sql.el, for example: the SQL buffer is the master |
738 and its SQLi buffer is the slave. This allows you to scroll the SQLi | 982 and its SQLi buffer is the slave. This allows you to scroll the SQLi |
739 buffer containing the output from the SQL buffer containing the | 983 buffer containing the output from the SQL buffer containing the |
748 (master-mode t) | 992 (master-mode t) |
749 (master-set-slave sql-buffer)))) | 993 (master-set-slave sql-buffer)))) |
750 (add-hook 'sql-set-sqli-hook | 994 (add-hook 'sql-set-sqli-hook |
751 (function (lambda () | 995 (function (lambda () |
752 (master-set-slave sql-buffer)))) | 996 (master-set-slave sql-buffer)))) |
753 | |
754 *** The new package ibuffer provides a powerful, completely | |
755 customizable replacement for buff-menu.el. | |
756 | |
757 ** Support for `magic cooky' standout modes has been removed. | |
758 Emacs will still work on terminals that require magic cookies in order | |
759 to use standout mode, however they will not be able to display | |
760 mode-lines in inverse-video. | |
761 | |
762 | |
763 * Lisp Changes in Emacs 21.4 | |
764 | |
765 ** The `defmacro' form may contain declarations specifying how to | |
766 indent the macro in Lisp mode and how to debug it with Edebug. The | |
767 syntax of defmacro has been extended to | |
768 | |
769 (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...) | |
770 | |
771 DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'. The | |
772 declaration specifiers supported are: | |
773 | |
774 (indent INDENT) | |
775 Set NAME's `lisp-indent-function' property to INDENT. | |
776 | |
777 (edebug DEBUG) | |
778 Set NAME's `edebug-form-spec' property to DEBUG. (This is | |
779 equivalent to writing a `def-edebug-spec' for the macro. | |
780 | |
781 ** Interactive commands can be remapped through keymaps. | |
782 | |
783 This is an alternative to using defadvice or substitute-key-definition | |
784 to modify the behaviour of a key binding using the normal keymap | |
785 binding and lookup functionality. | |
786 | |
787 When a key sequence is bound to a command, and that command is | |
788 remapped to another command, that command is run instead of the | |
789 original command. | |
790 | |
791 Example: | |
792 Suppose that minor mode my-mode has defined the commands | |
793 my-kill-line and my-kill-word, and it wants C-k (and any other key | |
794 bound to kill-line) to run the command my-kill-line instead of | |
795 kill-line, and likewise it wants to run my-kill-word instead of | |
796 kill-word. | |
797 | |
798 Instead of rebinding C-k and the other keys in the minor mode map, | |
799 command remapping allows you to directly map kill-line into | |
800 my-kill-line and kill-word into my-kill-word through the minor mode | |
801 map using define-key: | |
802 | |
803 (define-key my-mode-map [remap kill-line] 'my-kill-line) | |
804 (define-key my-mode-map [remap kill-word] 'my-kill-word) | |
805 | |
806 Now, when my-mode is enabled, and the user enters C-k or M-d, | |
807 the commands my-kill-line and my-kill-word are run. | |
808 | |
809 Notice that only one level of remapping is supported. In the above | |
810 example, this means that if my-kill-line is remapped to other-kill, | |
811 then C-k still runs my-kill-line. | |
812 | |
813 The following changes have been made to provide command remapping: | |
814 | |
815 - Command remappings are defined using `define-key' with a prefix-key | |
816 `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD | |
817 to definition DEF in keymap MAP. The definition is not limited to | |
818 another command; it can be anything accepted for a normal binding. | |
819 | |
820 - The new function `remap-command' returns the binding for a remapped | |
821 command in the current keymaps, or nil if it isn't remapped. | |
822 | |
823 - key-binding now remaps interactive commands unless the optional | |
824 third argument NO-REMAP is non-nil. | |
825 | |
826 - where-is-internal now returns nil for a remapped command (e.g. | |
827 kill-line if my-mode is enabled), and the actual key binding for | |
828 the command it is remapped to (e.g. C-k for my-kill-line). | |
829 It also has a new optional fifth argument, NO-REMAP, which inhibits | |
830 remapping if non-nil (e.g. it returns C-k for kill-line and | |
831 <kill-line> for my-kill-line). | |
832 | |
833 - The new variable `this-original-command' contains the original | |
834 command before remapping. It is equal to `this-command' when the | |
835 command was not remapped. | |
836 | |
837 ** Atomic change groups. | |
838 | |
839 To perform some changes in the current buffer "atomically" so that | |
840 they either all succeed or are all undone, use `atomic-change-group' | |
841 around the code that makes changes. For instance: | |
842 | |
843 (atomic-change-group | |
844 (insert foo) | |
845 (delete-region x y)) | |
846 | |
847 If an error (or other nonlocal exit) occurs inside the body of | |
848 `atomic-change-group', it unmakes all the changes in that buffer that | |
849 were during the execution of the body. The change group has no effect | |
850 on any other buffers--any such changes remain. | |
851 | |
852 If you need something more sophisticated, you can directly call the | |
853 lower-level functions that `atomic-change-group' uses. Here is how. | |
854 | |
855 To set up a change group for one buffer, call `prepare-change-group'. | |
856 Specify the buffer as argument; it defaults to the current buffer. | |
857 This function returns a "handle" for the change group. You must save | |
858 the handle to activate the change group and then finish it. | |
859 | |
860 Before you change the buffer again, you must activate the change | |
861 group. Pass the handle to `activate-change-group' afterward to | |
862 do this. | |
863 | |
864 After you make the changes, you must finish the change group. You can | |
865 either accept the changes or cancel them all. Call | |
866 `accept-change-group' to accept the changes in the group as final; | |
867 call `cancel-change-group' to undo them all. | |
868 | |
869 You should use `unwind-protect' to make sure the group is always | |
870 finished. The call to `activate-change-group' should be inside the | |
871 `unwind-protect', in case the user types C-g just after it runs. | |
872 (This is one reason why `prepare-change-group' and | |
873 `activate-change-group' are separate functions.) Once you finish the | |
874 group, don't use the handle again--don't try to finish the same group | |
875 twice. | |
876 | |
877 To make a multibuffer change group, call `prepare-change-group' once | |
878 for each buffer you want to cover, then use `nconc' to combine the | |
879 returned values, like this: | |
880 | |
881 (nconc (prepare-change-group buffer-1) | |
882 (prepare-change-group buffer-2)) | |
883 | |
884 You can then activate the multibuffer change group with a single call | |
885 to `activate-change-group', and finish it with a single call to | |
886 `accept-change-group' or `cancel-change-group'. | |
887 | |
888 Nested use of several change groups for the same buffer works as you | |
889 would expect. Non-nested use of change groups for the same buffer | |
890 will lead to undesirable results, so don't let it happen; the first | |
891 change group you start for any given buffer should be the last one | |
892 finished. | |
893 | |
894 ** New function remove-list-of-text-properties. | |
895 | |
896 The new function `remove-list-of-text-properties' is almost the same | |
897 as `remove-text-properties'. The only difference is that it takes | |
898 a list of property names as argument rather than a property list. | |
899 | |
900 ** New functions insert-for-yank and insert-buffer-substring-as-yank. | |
901 | |
902 These functions work like `insert' and `insert-buffer-substring', but | |
903 removes the text properties in the `yank-excluded-properties' list. | |
904 | |
905 ** New function insert-buffer-substring-no-properties. | |
906 | |
907 ** Enhanced networking support. | |
908 | |
909 *** There is a new `make-network-process' function which supports | |
910 opening of stream and datagram connections to a server, as well as | |
911 create a stream or datagram server inside emacs. | |
912 | |
913 - A server is started using :server t arg. | |
914 - Datagram connection is selected using :type 'datagram arg. | |
915 - A server can open on a random port using :service t arg. | |
916 - Local sockets are supported using :family 'local arg. | |
917 - Non-blocking connect is supported using :nowait t arg. | |
918 | |
919 To test for the availability of a given feature, use featurep like this: | |
920 (featurep 'make-network-process '(:type datagram)) | |
921 | |
922 *** Original open-network-stream is now emulated using make-network-process. | |
923 | |
924 *** New function open-network-stream-nowait. | |
925 | |
926 This function initiates a non-blocking connect and returns immediately | |
927 before the connection is established. The filter and sentinel | |
928 functions can be specified as arguments to open-network-stream-nowait. | |
929 When the non-blocking connect completes, the sentinel is called with | |
930 the status matching "open" or "failed". | |
931 | |
932 *** New function open-network-stream-server. | |
933 MORE INFO NEEDED HERE. | |
934 | |
935 *** New functions process-datagram-address and set-process-datagram-address. | |
936 MORE INFO NEEDED HERE. | |
937 | |
938 *** By default, the function process-contact still returns (HOST SERVICE) | |
939 for a network process. Using the new optional KEY arg, the complete list | |
940 of network process properties or a specific property can be selected. | |
941 | |
942 Using :local and :remote as the KEY, the address of the local or | |
943 remote end-point is returned. An Inet address is represented as a 5 | |
944 element vector, where the first 4 elements contain the IP address and | |
945 the fifth is the port number. | |
946 | |
947 *** Network processes can now be stopped and restarted with | |
948 `stop-process' and `continue-process'. For a server process, no | |
949 connections are accepted in the stopped state. For a client process, | |
950 no input is received in the stopped state. | |
951 | |
952 *** Function list-processes now has an optional argument; if non-nil, | |
953 only the processes whose query-on-exit flag is set are listed. | |
954 | |
955 *** New set-process-query-on-exit-flag and process-query-on-exit-flag | |
956 functions. The existing process-kill-without-query function is still | |
957 supported, but new code should use the new functions. | |
958 | |
959 ** New function substring-no-properties. | |
960 | |
961 ** New function minibuffer-selected-window. | |
962 | |
963 ** New function `call-process-shell-command'. | |
964 | |
965 ** The dummy function keys made by easymenu | |
966 are now always lower case. If you specify the | |
967 menu item name "Ada", for instance, it uses `ada' | |
968 as the "key" bound by that key binding. | |
969 | |
970 This is relevant only if Lisp code looks for | |
971 the bindings that were made with easymenu. | |
972 | |
973 ** The function `commandp' takes an additional optional | |
974 argument. If it is non-nil, then `commandp' checks | |
975 for a function that could be called with `call-interactively', | |
976 and does not return t for keyboard macros. | |
977 | 997 |
978 ** File local variables. | 998 ** File local variables. |
979 | 999 |
980 A file local variables list cannot specify a string with text | 1000 A file local variables list cannot specify a string with text |
981 properties--any specified text properties are discarded. | 1001 properties--any specified text properties are discarded. |