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.