diff options
| author | Paul Eggert | 2011-08-29 23:19:35 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-08-29 23:19:35 -0700 |
| commit | f00b626d886d32b08aa6fb47e1cee124c1926897 (patch) | |
| tree | 0a59d9093e02dea55a0aca750cd5059231196e33 | |
| parent | 6e1a67fbe915e6fdc1d63a8e6c434aa79e4e7fb4 (diff) | |
| parent | 393aa9d403dda96b2fa061311cc76bbad40489cf (diff) | |
| download | emacs-f00b626d886d32b08aa6fb47e1cee124c1926897.tar.gz emacs-f00b626d886d32b08aa6fb47e1cee124c1926897.zip | |
Merge from trunk.
| -rw-r--r-- | doc/emacs/ChangeLog | 4 | ||||
| -rw-r--r-- | doc/emacs/modes.texi | 13 | ||||
| -rw-r--r-- | doc/lispref/ChangeLog | 7 | ||||
| -rw-r--r-- | doc/lispref/elisp.texi | 5 | ||||
| -rw-r--r-- | doc/lispref/modes.texi | 337 | ||||
| -rw-r--r-- | doc/lispref/vol1.texi | 7 | ||||
| -rw-r--r-- | doc/lispref/vol2.texi | 7 | ||||
| -rw-r--r-- | etc/ChangeLog | 6 | ||||
| -rw-r--r-- | etc/MACHINES | 276 | ||||
| -rw-r--r-- | etc/NEWS | 15 | ||||
| -rw-r--r-- | etc/PROBLEMS | 37 | ||||
| -rw-r--r-- | lisp/ChangeLog | 5 | ||||
| -rw-r--r-- | lisp/isearch.el | 2 |
13 files changed, 267 insertions, 454 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog index 58b98189e29..2407d7dd18f 100644 --- a/doc/emacs/ChangeLog +++ b/doc/emacs/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-08-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * modes.texi (Choosing Modes): auto-mode-case-fold is now t. | ||
| 4 | |||
| 1 | 2011-08-28 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-08-28 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * files.texi (File Archives): | 7 | * files.texi (File Archives): |
diff --git a/doc/emacs/modes.texi b/doc/emacs/modes.texi index 314d5d4347e..d82423a73b4 100644 --- a/doc/emacs/modes.texi +++ b/doc/emacs/modes.texi | |||
| @@ -353,12 +353,13 @@ the element has the form @code{(@var{regexp} @var{mode-function} | |||
| 353 | @var{regexp} and searches the list again for another match. | 353 | @var{regexp} and searches the list again for another match. |
| 354 | 354 | ||
| 355 | @vindex auto-mode-case-fold | 355 | @vindex auto-mode-case-fold |
| 356 | On systems with case-insensitive file names, such as Microsoft | 356 | On GNU/Linux and other systems with case-sensitive file names, Emacs |
| 357 | Windows, Emacs performs a single case-insensitive search through | 357 | performs a case-sensitive search through @code{auto-mode-alist}; if |
| 358 | @code{auto-mode-alist}. On other systems, Emacs normally performs a | 358 | this search fails, it performs a second case-insensitive search |
| 359 | single case-sensitive search through the alist. However, if you | 359 | through the alist. To suppress the second search, change the variable |
| 360 | change the variable @code{auto-mode-case-fold} to @code{t}, Emacs | 360 | @code{auto-mode-case-fold} to @code{nil}. On systems with |
| 361 | performs a second case-insensitive search if the first search fails. | 361 | case-insensitive file names, such as Microsoft Windows, Emacs performs |
| 362 | a single case-insensitive search through @code{auto-mode-alist}. | ||
| 362 | 363 | ||
| 363 | @vindex magic-fallback-mode-alist | 364 | @vindex magic-fallback-mode-alist |
| 364 | Finally, if Emacs @emph{still} hasn't found a major mode to use, it | 365 | Finally, if Emacs @emph{still} hasn't found a major mode to use, it |
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index aae0be5a054..57dde5ac4cb 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog | |||
| @@ -1,3 +1,10 @@ | |||
| 1 | 2011-08-29 Chong Yidong <cyd@stupidchicken.com> | ||
| 2 | |||
| 3 | * modes.texi (Basic Major Modes): New node. Callers updated. | ||
| 4 | (Major Modes): Document fundamental-mode and major-mode. | ||
| 5 | (Major Mode Basics): Node deleted; text moved to Major Modes. | ||
| 6 | (Derived Modes): Document derived-mode-p. | ||
| 7 | |||
| 1 | 2011-08-28 Chong Yidong <cyd@stupidchicken.com> | 8 | 2011-08-28 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 9 | ||
| 3 | * files.texi (Changing Files, Create/Delete Dirs): Document new | 10 | * files.texi (Changing Files, Create/Delete Dirs): Document new |
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi index bb05f1b4a0b..a19af903027 100644 --- a/doc/lispref/elisp.texi +++ b/doc/lispref/elisp.texi | |||
| @@ -765,8 +765,7 @@ Major and Minor Modes | |||
| 765 | * Major Modes:: Defining major modes. | 765 | * Major Modes:: Defining major modes. |
| 766 | * Minor Modes:: Defining minor modes. | 766 | * Minor Modes:: Defining minor modes. |
| 767 | * Mode Line Format:: Customizing the text that appears in the mode line. | 767 | * Mode Line Format:: Customizing the text that appears in the mode line. |
| 768 | * Imenu:: How a mode can provide a menu | 768 | * Imenu:: Providing a menu of definitions made in a buffer. |
| 769 | of definitions in the buffer. | ||
| 770 | * Font Lock Mode:: How modes can highlight text according to syntax. | 769 | * Font Lock Mode:: How modes can highlight text according to syntax. |
| 771 | * Desktop Save Mode:: How modes can have buffer state saved between | 770 | * Desktop Save Mode:: How modes can have buffer state saved between |
| 772 | Emacs sessions. | 771 | Emacs sessions. |
| @@ -778,12 +777,12 @@ Hooks | |||
| 778 | 777 | ||
| 779 | Major Modes | 778 | Major Modes |
| 780 | 779 | ||
| 781 | * Major Mode Basics:: | ||
| 782 | * Major Mode Conventions:: Coding conventions for keymaps, etc. | 780 | * Major Mode Conventions:: Coding conventions for keymaps, etc. |
| 783 | * Auto Major Mode:: How Emacs chooses the major mode automatically. | 781 | * Auto Major Mode:: How Emacs chooses the major mode automatically. |
| 784 | * Mode Help:: Finding out how to use a mode. | 782 | * Mode Help:: Finding out how to use a mode. |
| 785 | * Derived Modes:: Defining a new major mode based on another major | 783 | * Derived Modes:: Defining a new major mode based on another major |
| 786 | mode. | 784 | mode. |
| 785 | * Basic Major Modes:: Modes that other modes are often derived from. | ||
| 787 | * Generic Modes:: Defining a simple major mode that supports | 786 | * Generic Modes:: Defining a simple major mode that supports |
| 788 | comment syntax and Font Lock mode. | 787 | comment syntax and Font Lock mode. |
| 789 | * Mode Hooks:: Hooks run at the end of major mode functions. | 788 | * Mode Hooks:: Hooks run at the end of major mode functions. |
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index a354265b365..586fc0bbbfb 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi | |||
| @@ -19,16 +19,15 @@ user. For related topics such as keymaps and syntax tables, see | |||
| 19 | @ref{Keymaps}, and @ref{Syntax Tables}. | 19 | @ref{Keymaps}, and @ref{Syntax Tables}. |
| 20 | 20 | ||
| 21 | @menu | 21 | @menu |
| 22 | * Hooks:: How to use hooks; how to write code that provides hooks. | 22 | * Hooks:: How to use hooks; how to write code that provides hooks. |
| 23 | * Major Modes:: Defining major modes. | 23 | * Major Modes:: Defining major modes. |
| 24 | * Minor Modes:: Defining minor modes. | 24 | * Minor Modes:: Defining minor modes. |
| 25 | * Mode Line Format:: Customizing the text that appears in the mode line. | 25 | * Mode Line Format:: Customizing the text that appears in the mode line. |
| 26 | * Imenu:: How a mode can provide a menu | 26 | * Imenu:: Providing a menu of definitions made in a buffer. |
| 27 | of definitions in the buffer. | 27 | * Font Lock Mode:: How modes can highlight text according to syntax. |
| 28 | * Font Lock Mode:: How modes can highlight text according to syntax. | 28 | * Auto-Indentation:: How to teach Emacs to indent for a major mode. |
| 29 | * Auto-Indentation:: How to teach Emacs to indent for a major mode. | 29 | * Desktop Save Mode:: How modes can have buffer state saved between |
| 30 | * Desktop Save Mode:: How modes can have buffer state saved between | 30 | Emacs sessions. |
| 31 | Emacs sessions. | ||
| 32 | @end menu | 31 | @end menu |
| 33 | 32 | ||
| 34 | @node Hooks | 33 | @node Hooks |
| @@ -48,12 +47,12 @@ convention, whenever the hook name ends in @samp{-hook}, that tells | |||
| 48 | you it is normal. We try to make all hooks normal, as much as | 47 | you it is normal. We try to make all hooks normal, as much as |
| 49 | possible, so that you can use them in a uniform way. | 48 | possible, so that you can use them in a uniform way. |
| 50 | 49 | ||
| 51 | Every major mode function is supposed to run a normal hook called | 50 | Every major mode command is supposed to run a normal hook called the |
| 52 | the @dfn{mode hook} as the one of the last steps of initialization. | 51 | @dfn{mode hook} as the one of the last steps of initialization. This |
| 53 | This makes it easy for a user to customize the behavior of the mode, | 52 | makes it easy for a user to customize the behavior of the mode, by |
| 54 | by overriding the buffer-local variable assignments already made by | 53 | overriding the buffer-local variable assignments already made by the |
| 55 | the mode. Most minor mode functions also run a mode hook at the end. | 54 | mode. Most minor mode functions also run a mode hook at the end. But |
| 56 | But hooks are used in other contexts too. For example, the hook | 55 | hooks are used in other contexts too. For example, the hook |
| 57 | @code{suspend-hook} runs just before Emacs suspends itself | 56 | @code{suspend-hook} runs just before Emacs suspends itself |
| 58 | (@pxref{Suspending Emacs}). | 57 | (@pxref{Suspending Emacs}). |
| 59 | 58 | ||
| @@ -78,8 +77,8 @@ convention. | |||
| 78 | its value is just a single function, not a list of functions. | 77 | its value is just a single function, not a list of functions. |
| 79 | 78 | ||
| 80 | @menu | 79 | @menu |
| 81 | * Running Hooks:: How to run a hook. | 80 | * Running Hooks:: How to run a hook. |
| 82 | * Setting Hooks:: How to put functions on a hook, or remove them. | 81 | * Setting Hooks:: How to put functions on a hook, or remove them. |
| 83 | @end menu | 82 | @end menu |
| 84 | 83 | ||
| 85 | @node Running Hooks | 84 | @node Running Hooks |
| @@ -195,115 +194,98 @@ from the buffer-local hook list instead of from the global hook list. | |||
| 195 | @section Major Modes | 194 | @section Major Modes |
| 196 | @cindex major mode | 195 | @cindex major mode |
| 197 | 196 | ||
| 197 | @cindex major mode command | ||
| 198 | Major modes specialize Emacs for editing particular kinds of text. | 198 | Major modes specialize Emacs for editing particular kinds of text. |
| 199 | Each buffer has only one major mode at a time. For each major mode | 199 | Each buffer has one major mode at a time. Every major mode is |
| 200 | there is a function to switch to that mode in the current buffer; its | 200 | associated with a @dfn{major mode command}, whose name should end in |
| 201 | name should end in @samp{-mode}. These functions work by setting | 201 | @samp{-mode}. This command takes care of switching to that mode in the |
| 202 | buffer-local variable bindings and other data associated with the | 202 | current buffer, by setting various buffer-local variables such as a |
| 203 | buffer, such as a local keymap. The effect lasts until you switch | 203 | local keymap. @xref{Major Mode Conventions}. |
| 204 | to another major mode in the same buffer. | 204 | |
| 205 | The least specialized major mode is called @dfn{Fundamental mode}, | ||
| 206 | which has no mode-specific definitions or variable settings. | ||
| 207 | |||
| 208 | @deffn Command fundamental-mode | ||
| 209 | This is the major mode command for Fundamental mode. Unlike other mode | ||
| 210 | commands, it does @emph{not} run any mode hooks (@pxref{Major Mode | ||
| 211 | Conventions}), since you are not supposed to customize this mode. | ||
| 212 | @end deffn | ||
| 213 | |||
| 214 | The easiest way to write a major mode is to use the macro | ||
| 215 | @code{define-derived-mode}, which sets up the new mode as a variant of | ||
| 216 | an existing major mode. @xref{Derived Modes}. We recommend using | ||
| 217 | @code{define-derived-mode} even if the new mode is not an obvious | ||
| 218 | derivative of another mode, as it automatically enforces many coding | ||
| 219 | conventions for you. @xref{Basic Major Modes}, for common modes to | ||
| 220 | derive from. | ||
| 221 | |||
| 222 | The standard GNU Emacs Lisp directory tree contains the code for | ||
| 223 | several major modes, in files such as @file{text-mode.el}, | ||
| 224 | @file{texinfo.el}, @file{lisp-mode.el}, and @file{rmail.el}. You can | ||
| 225 | study these libraries to see how modes are written. | ||
| 226 | |||
| 227 | @defopt major-mode | ||
| 228 | The buffer-local value of this variable is a symbol naming the buffer's | ||
| 229 | current major mode. Its default value holds the default major mode for | ||
| 230 | new buffers. The standard default value is @code{fundamental-mode}. | ||
| 231 | |||
| 232 | If the default value is @code{nil}, then whenever Emacs creates a new | ||
| 233 | buffer via a command such as @kbd{C-x b} (@code{switch-to-buffer}), the | ||
| 234 | new buffer is put in the major mode of the previously current buffer. | ||
| 235 | As an exception, if the major mode of the previous buffer has a | ||
| 236 | @code{mode-class} symbol property with value @code{special}, the new | ||
| 237 | buffer is put in Fundamental mode (@pxref{Major Mode Conventions}). | ||
| 238 | @end defopt | ||
| 205 | 239 | ||
| 206 | @menu | 240 | @menu |
| 207 | * Major Mode Basics:: | 241 | * Major Mode Conventions:: Coding conventions for keymaps, etc. |
| 208 | * Major Mode Conventions:: Coding conventions for keymaps, etc. | 242 | * Auto Major Mode:: How Emacs chooses the major mode automatically. |
| 209 | * Auto Major Mode:: How Emacs chooses the major mode automatically. | 243 | * Mode Help:: Finding out how to use a mode. |
| 210 | * Mode Help:: Finding out how to use a mode. | 244 | * Derived Modes:: Defining a new major mode based on another major |
| 211 | * Derived Modes:: Defining a new major mode based on another major | ||
| 212 | mode. | 245 | mode. |
| 213 | * Generic Modes:: Defining a simple major mode that supports | 246 | * Basic Major Modes:: Modes that other modes are often derived from. |
| 247 | * Generic Modes:: Defining a simple major mode that supports | ||
| 214 | comment syntax and Font Lock mode. | 248 | comment syntax and Font Lock mode. |
| 215 | * Mode Hooks:: Hooks run at the end of major mode functions. | 249 | * Mode Hooks:: Hooks run at the end of major mode commands. |
| 216 | * Example Major Modes:: Text mode and Lisp modes. | 250 | * Example Major Modes:: Text mode and Lisp modes. |
| 217 | @end menu | 251 | @end menu |
| 218 | 252 | ||
| 219 | @node Major Mode Basics | ||
| 220 | @subsection Major Mode Basics | ||
| 221 | @cindex Fundamental mode | ||
| 222 | |||
| 223 | The least specialized major mode is called @dfn{Fundamental mode}. | ||
| 224 | This mode has no mode-specific definitions or variable settings, so each | ||
| 225 | Emacs command behaves in its default manner, and each option is in its | ||
| 226 | default state. All other major modes redefine various keys and options. | ||
| 227 | For example, Lisp Interaction mode provides special key bindings for | ||
| 228 | @kbd{C-j} (@code{eval-print-last-sexp}), @key{TAB} | ||
| 229 | (@code{lisp-indent-line}), and other keys. | ||
| 230 | |||
| 231 | When you need to write several editing commands to help you perform a | ||
| 232 | specialized editing task, creating a new major mode is usually a good | ||
| 233 | idea. In practice, writing a major mode is easy (in contrast to | ||
| 234 | writing a minor mode, which is often difficult). | ||
| 235 | |||
| 236 | If the new mode is similar to an old one, it is often unwise to | ||
| 237 | modify the old one to serve two purposes, since it may become harder | ||
| 238 | to use and maintain. Instead, copy and rename an existing major mode | ||
| 239 | definition and alter the copy---or use the @code{define-derived-mode} | ||
| 240 | macro to define a @dfn{derived mode} (@pxref{Derived Modes}). For | ||
| 241 | example, Rmail Edit mode is a major mode that is very similar to Text | ||
| 242 | mode except that it provides two additional commands. Its definition | ||
| 243 | is distinct from that of Text mode, but uses that of Text mode. | ||
| 244 | |||
| 245 | Even if the new mode is not an obvious derivative of any other mode, | ||
| 246 | we recommend to use @code{define-derived-mode}, since it automatically | ||
| 247 | enforces the most important coding conventions for you. | ||
| 248 | |||
| 249 | For a very simple programming language major mode that handles | ||
| 250 | comments and fontification, you can use @code{define-generic-mode}. | ||
| 251 | @xref{Generic Modes}. | ||
| 252 | |||
| 253 | Rmail Edit mode offers an example of changing the major mode | ||
| 254 | temporarily for a buffer, so it can be edited in a different way (with | ||
| 255 | ordinary Emacs commands rather than Rmail commands). In such cases, the | ||
| 256 | temporary major mode usually provides a command to switch back to the | ||
| 257 | buffer's usual mode (Rmail mode, in this case). You might be tempted to | ||
| 258 | present the temporary redefinitions inside a recursive edit and restore | ||
| 259 | the usual ones when the user exits; but this is a bad idea because it | ||
| 260 | constrains the user's options when it is done in more than one buffer: | ||
| 261 | recursive edits must be exited most-recently-entered first. Using an | ||
| 262 | alternative major mode avoids this limitation. @xref{Recursive | ||
| 263 | Editing}. | ||
| 264 | |||
| 265 | The standard GNU Emacs Lisp library directory tree contains the code | ||
| 266 | for several major modes, in files such as @file{text-mode.el}, | ||
| 267 | @file{texinfo.el}, @file{lisp-mode.el}, @file{c-mode.el}, and | ||
| 268 | @file{rmail.el}. They are found in various subdirectories of the | ||
| 269 | @file{lisp} directory. You can study these libraries to see how modes | ||
| 270 | are written. Text mode is perhaps the simplest major mode aside from | ||
| 271 | Fundamental mode. Rmail mode is a complicated and specialized mode. | ||
| 272 | |||
| 273 | @node Major Mode Conventions | 253 | @node Major Mode Conventions |
| 274 | @subsection Major Mode Conventions | 254 | @subsection Major Mode Conventions |
| 275 | @cindex major mode conventions | 255 | @cindex major mode conventions |
| 276 | @cindex conventions for writing major modes | 256 | @cindex conventions for writing major modes |
| 277 | 257 | ||
| 278 | The code for existing major modes follows various coding conventions, | 258 | The code for every major mode should follow various coding |
| 279 | including conventions for local keymap and syntax table initialization, | 259 | conventions, including conventions for local keymap and syntax table |
| 280 | global names, and hooks. Please follow these conventions when you | 260 | initialization, function and variable names, and hooks. |
| 281 | define a new major mode. (Fundamental mode is an exception to many | 261 | |
| 282 | of these conventions, because its definition is to present the global | 262 | If you use the @code{define-derived-mode} macro, it will take care of |
| 283 | state of Emacs.) | 263 | many of these conventions automatically. @xref{Derived Modes}. Note |
| 264 | also that fundamental mode is an exception to many of these conventions, | ||
| 265 | because its definition is to present the global state of Emacs. | ||
| 284 | 266 | ||
| 285 | This list of conventions is only partial, because each major mode | 267 | The following list of conventions is only partial. Each major mode |
| 286 | should aim for consistency in general with other Emacs major modes. | 268 | should aim for consistency in general with other Emacs major modes, as |
| 287 | This makes Emacs as a whole more coherent. It is impossible to list | 269 | this makes Emacs as a whole more coherent. It is impossible to list |
| 288 | here all the possible points where this issue might come up; if the | 270 | here all the possible points where this issue might come up; if the |
| 289 | Emacs developers point out an area where your major mode deviates from | 271 | Emacs developers point out an area where your major mode deviates from |
| 290 | the usual conventions, please make it compatible. | 272 | the usual conventions, please make it compatible. |
| 291 | 273 | ||
| 292 | @itemize @bullet | 274 | @itemize @bullet |
| 293 | @item | 275 | @item |
| 294 | Define a command whose name ends in @samp{-mode}, with no arguments, | 276 | Define a major mode command whose name ends in @samp{-mode}. When |
| 295 | that switches to the new mode in the current buffer. This command | 277 | called with no arguments, this command should switch to the new mode in |
| 296 | should set up the keymap, syntax table, and buffer-local variables in an | 278 | the current buffer by setting up the keymap, syntax table, and |
| 297 | existing buffer, without changing the buffer's contents. | 279 | buffer-local variables in an existing buffer. It should not change the |
| 280 | buffer's contents. | ||
| 298 | 281 | ||
| 299 | @item | 282 | @item |
| 300 | Write a documentation string for this command that describes the | 283 | Write a documentation string for this command that describes the special |
| 301 | special commands available in this mode. @kbd{C-h m} | 284 | commands available in this mode. @xref{Mode Help}. |
| 302 | (@code{describe-mode}) in your mode will display this string. | ||
| 303 | 285 | ||
| 304 | The documentation string may include the special documentation | 286 | The documentation string may include the special documentation |
| 305 | substrings, @samp{\[@var{command}]}, @samp{\@{@var{keymap}@}}, and | 287 | substrings, @samp{\[@var{command}]}, @samp{\@{@var{keymap}@}}, and |
| 306 | @samp{\<@var{keymap}>}, which enable the documentation to adapt | 288 | @samp{\<@var{keymap}>}, which allow the help display to adapt |
| 307 | automatically to the user's own key bindings. @xref{Keys in | 289 | automatically to the user's own key bindings. @xref{Keys in |
| 308 | Documentation}. | 290 | Documentation}. |
| 309 | 291 | ||
| @@ -527,10 +509,9 @@ mode when creating new buffers (@pxref{Auto Major Mode}), but with such | |||
| 527 | Dired, Rmail, and Buffer List use this feature. | 509 | Dired, Rmail, and Buffer List use this feature. |
| 528 | 510 | ||
| 529 | The @code{define-derived-mode} macro automatically marks the derived | 511 | The @code{define-derived-mode} macro automatically marks the derived |
| 530 | mode as special if the parent mode is special. The special mode | 512 | mode as special if the parent mode is special. Special mode is a |
| 531 | @code{special-mode} provides a convenient parent for other special | 513 | convenient parent for such modes to inherit from; @xref{Basic Major |
| 532 | modes to inherit from; it sets @code{buffer-read-only} to @code{t}, | 514 | Modes}. |
| 533 | and does little else. | ||
| 534 | 515 | ||
| 535 | @item | 516 | @item |
| 536 | If you want to make the new mode the default for files with certain | 517 | If you want to make the new mode the default for files with certain |
| @@ -564,16 +545,6 @@ Even if you never load the file more than once, someone else will. | |||
| 564 | automatically selects a major mode for the new buffer when a file is | 545 | automatically selects a major mode for the new buffer when a file is |
| 565 | visited. It also processes local variables specified in the file text. | 546 | visited. It also processes local variables specified in the file text. |
| 566 | 547 | ||
| 567 | @deffn Command fundamental-mode | ||
| 568 | Fundamental mode is a major mode that is not specialized for anything | ||
| 569 | in particular. Other major modes are defined in effect by comparison | ||
| 570 | with this one---their definitions say what to change, starting from | ||
| 571 | Fundamental mode. The @code{fundamental-mode} function does @emph{not} | ||
| 572 | run any mode hooks; you're not supposed to customize it. (If you want Emacs | ||
| 573 | to behave differently in Fundamental mode, change the @emph{global} | ||
| 574 | state of Emacs.) | ||
| 575 | @end deffn | ||
| 576 | |||
| 577 | @deffn Command normal-mode &optional find-file | 548 | @deffn Command normal-mode &optional find-file |
| 578 | This function establishes the proper major mode and buffer-local variable | 549 | This function establishes the proper major mode and buffer-local variable |
| 579 | bindings for the current buffer. First it calls @code{set-auto-mode} | 550 | bindings for the current buffer. First it calls @code{set-auto-mode} |
| @@ -599,23 +570,22 @@ by the default value of @code{major-mode} (see below). | |||
| 599 | 570 | ||
| 600 | @cindex file mode specification error | 571 | @cindex file mode specification error |
| 601 | @code{normal-mode} uses @code{condition-case} around the call to the | 572 | @code{normal-mode} uses @code{condition-case} around the call to the |
| 602 | major mode function, so errors are caught and reported as a @samp{File | 573 | major mode command, so errors are caught and reported as a @samp{File |
| 603 | mode specification error}, followed by the original error message. | 574 | mode specification error}, followed by the original error message. |
| 604 | @end deffn | 575 | @end deffn |
| 605 | 576 | ||
| 606 | @defun set-auto-mode &optional keep-mode-if-same | 577 | @defun set-auto-mode &optional keep-mode-if-same |
| 607 | @cindex visited file mode | 578 | @cindex visited file mode |
| 608 | This function selects the major mode that is appropriate for the | 579 | This function selects the major mode that is appropriate for the |
| 609 | current buffer. It bases its decision (in order of precedence) on | 580 | current buffer. It bases its decision (in order of precedence) on the |
| 610 | the @w{@samp{-*-}} line, on any @samp{mode:} local variable near the | 581 | @w{@samp{-*-}} line, on any @samp{mode:} local variable near the end of |
| 611 | end of a file, on the @w{@samp{#!}} line (using | 582 | a file, on the @w{@samp{#!}} line (using @code{interpreter-mode-alist}), |
| 612 | @code{interpreter-mode-alist}), on the text at the beginning of the | 583 | on the text at the beginning of the buffer (using |
| 613 | buffer (using @code{magic-mode-alist}), and finally on the visited | 584 | @code{magic-mode-alist}), and finally on the visited file name (using |
| 614 | file name (using @code{auto-mode-alist}). @xref{Choosing Modes, , How | 585 | @code{auto-mode-alist}). @xref{Choosing Modes, , How Major Modes are |
| 615 | Major Modes are Chosen, emacs, The GNU Emacs Manual}. | 586 | Chosen, emacs, The GNU Emacs Manual}. If @code{enable-local-variables} |
| 616 | If @code{enable-local-variables} is @code{nil}, @code{set-auto-mode} | 587 | is @code{nil}, @code{set-auto-mode} does not check the @w{@samp{-*-}} |
| 617 | does not check the @w{@samp{-*-}} line, or near the end of the file, | 588 | line, or near the end of the file, for any mode tag. |
| 618 | for any mode tag. | ||
| 619 | 589 | ||
| 620 | If @var{keep-mode-if-same} is non-@code{nil}, this function does not | 590 | If @var{keep-mode-if-same} is non-@code{nil}, this function does not |
| 621 | call the mode command if the buffer is already in the proper major | 591 | call the mode command if the buffer is already in the proper major |
| @@ -624,21 +594,6 @@ mode. For instance, @code{set-visited-file-name} sets this to | |||
| 624 | have set. | 594 | have set. |
| 625 | @end defun | 595 | @end defun |
| 626 | 596 | ||
| 627 | @defopt major-mode | ||
| 628 | The buffer-local value of this variable holds the major mode | ||
| 629 | currently active. The default value of this variable holds the | ||
| 630 | default major mode for new buffers. The standard default value is | ||
| 631 | @code{fundamental-mode}. | ||
| 632 | |||
| 633 | If the default value of @code{major-mode} is @code{nil}, Emacs uses | ||
| 634 | the (previously) current buffer's major mode as the default major mode | ||
| 635 | of a new buffer. However, if that major mode symbol has a @code{mode-class} | ||
| 636 | property with value @code{special}, then it is not used for new buffers; | ||
| 637 | Fundamental mode is used instead. The modes that have this property are | ||
| 638 | those such as Dired and Rmail that are useful only with text that has | ||
| 639 | been specially prepared. | ||
| 640 | @end defopt | ||
| 641 | |||
| 642 | @defun set-buffer-major-mode buffer | 597 | @defun set-buffer-major-mode buffer |
| 643 | This function sets the major mode of @var{buffer} to the default value of | 598 | This function sets the major mode of @var{buffer} to the default value of |
| 644 | @code{major-mode}; if that is @code{nil}, it uses the | 599 | @code{major-mode}; if that is @code{nil}, it uses the |
| @@ -745,18 +700,17 @@ init file.) | |||
| 745 | @cindex help for major mode | 700 | @cindex help for major mode |
| 746 | @cindex documentation for major mode | 701 | @cindex documentation for major mode |
| 747 | 702 | ||
| 748 | The @code{describe-mode} function is used to provide information | 703 | The @code{describe-mode} function is provides information about major |
| 749 | about major modes. It is normally called with @kbd{C-h m}. The | 704 | modes. It is normally bound to @kbd{C-h m}. It uses the value of the |
| 750 | @code{describe-mode} function uses the value of @code{major-mode}, | 705 | variable @code{major-mode} (which is why every major mode command needs |
| 751 | which is why every major mode function needs to set the | 706 | to set this variable). |
| 752 | @code{major-mode} variable. | ||
| 753 | 707 | ||
| 754 | @deffn Command describe-mode | 708 | @deffn Command describe-mode |
| 755 | This function displays the documentation of the current major mode. | 709 | This function displays the documentation of the current major mode. |
| 756 | 710 | ||
| 757 | The @code{describe-mode} function calls the @code{documentation} | 711 | The @code{describe-mode} function calls the @code{documentation} |
| 758 | function using the value of @code{major-mode} as an argument. Thus, it | 712 | function using the value of @code{major-mode} as an argument. Thus, it |
| 759 | displays the documentation string of the major mode function. | 713 | displays the documentation string of the major mode command. |
| 760 | (@xref{Accessing Documentation}.) | 714 | (@xref{Accessing Documentation}.) |
| 761 | @end deffn | 715 | @end deffn |
| 762 | 716 | ||
| @@ -772,11 +726,12 @@ documentation of the major mode. | |||
| 772 | @subsection Defining Derived Modes | 726 | @subsection Defining Derived Modes |
| 773 | @cindex derived mode | 727 | @cindex derived mode |
| 774 | 728 | ||
| 775 | The recommended way to define a new major mode is to derive it | 729 | The recommended way to define a new major mode is to derive it from an |
| 776 | from an existing one using @code{define-derived-mode}. If there is no | 730 | existing one using @code{define-derived-mode}. If there is no closely |
| 777 | closely related mode, you can inherit from @code{text-mode}, | 731 | related mode, you should inherit from either @code{text-mode}, |
| 778 | @code{special-mode}, @code{prog-mode}, or in the worst case | 732 | @code{special-mode}, or @code{prog-mode}. @xref{Basic Major Modes}. If |
| 779 | @code{fundamental-mode}. | 733 | none of these are suitable, you can inherit from @code{fundamental-mode} |
| 734 | (@pxref{Major Modes}). | ||
| 780 | 735 | ||
| 781 | @defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{} | 736 | @defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{} |
| 782 | This macro defines @var{variant} as a major mode command, using | 737 | This macro defines @var{variant} as a major mode command, using |
| @@ -877,6 +832,64 @@ Do not write an @code{interactive} spec in the definition; | |||
| 877 | @code{define-derived-mode} does that automatically. | 832 | @code{define-derived-mode} does that automatically. |
| 878 | @end defmac | 833 | @end defmac |
| 879 | 834 | ||
| 835 | @defun derived-mode-p &rest modes | ||
| 836 | This function returns non-@code{nil} if the current major mode is | ||
| 837 | derived from any of the major modes given by the symbols @var{modes}. | ||
| 838 | @end defun | ||
| 839 | |||
| 840 | @node Basic Major Modes | ||
| 841 | @subsection Basic Major Modes | ||
| 842 | |||
| 843 | Apart from Fundamental mode, there are three major modes that other | ||
| 844 | major modes commonly derive from: Text mode, Prog mode, and Special | ||
| 845 | mode. While Text mode is useful in its own right (e.g. for editing | ||
| 846 | files ending in @file{.txt}), Prog mode and Special mode exist mainly to | ||
| 847 | let other modes derive from them. | ||
| 848 | |||
| 849 | @vindex prog-mode-hook | ||
| 850 | As far as possible, new major modes should be derived, either directly | ||
| 851 | or indirectly, from one of these three modes. One reason is that this | ||
| 852 | allows users to customize a single mode hook | ||
| 853 | (e.g. @code{prog-mode-hook}) for an entire family of relevant modes | ||
| 854 | (e.g. all programming language modes). | ||
| 855 | |||
| 856 | @deffn Command text-mode | ||
| 857 | Text mode is a major mode for editing human languages. It defines the | ||
| 858 | @samp{"} and @samp{\} characters as having punctuation syntax | ||
| 859 | (@pxref{Syntax Class Table}), and binds @kbd{M-@key{TAB}} to | ||
| 860 | @code{ispell-complete-word} (@pxref{Spelling,,, emacs, The GNU Emacs | ||
| 861 | Manual}). | ||
| 862 | |||
| 863 | An example of a major mode derived from Text mode is HTML mode. | ||
| 864 | @xref{HTML Mode,,SGML and HTML Modes, emacs, The GNU Emacs Manual}. | ||
| 865 | @end deffn | ||
| 866 | |||
| 867 | @deffn Command prog-mode | ||
| 868 | Prog mode is a basic major mode for buffers containing programming | ||
| 869 | language source code. Most of the programming language major modes | ||
| 870 | built into Emacs are derived from it. | ||
| 871 | |||
| 872 | Prog mode binds @code{parse-sexp-ignore-comments} to @code{t} | ||
| 873 | (@pxref{Motion via Parsing}) and @code{bidi-paragraph-direction} to | ||
| 874 | @code{left-to-right} (@pxref{Bidirectional Display}). | ||
| 875 | @end deffn | ||
| 876 | |||
| 877 | @deffn Command special-mode | ||
| 878 | Special mode is a basic major mode for buffers containing text that is | ||
| 879 | produced specially by Emacs, rather than from a file. Major modes | ||
| 880 | derived from Special mode are given a @code{mode-class} property of | ||
| 881 | @code{special} (@pxref{Major Mode Conventions}). | ||
| 882 | |||
| 883 | Special mode sets the buffer to read-only. Its keymap defines several | ||
| 884 | common bindings, including @kbd{q} for @code{quit-window}, @kbd{z} for | ||
| 885 | @code{kill-this-buffer}, and @kbd{g} for @code{revert-buffer} | ||
| 886 | (@pxref{Reverting}). | ||
| 887 | |||
| 888 | An example of a major mode derived from Special mode is Buffer Menu | ||
| 889 | mode, which is used by the @samp{*Buffer List*} buffer. @xref{List | ||
| 890 | Buffers,,Listing Existing Buffers, emacs, The GNU Emacs Manual}. | ||
| 891 | @end deffn | ||
| 892 | |||
| 880 | @node Generic Modes | 893 | @node Generic Modes |
| 881 | @subsection Generic Modes | 894 | @subsection Generic Modes |
| 882 | @cindex generic mode | 895 | @cindex generic mode |
| @@ -921,7 +934,7 @@ before it runs the mode hook variable @code{@var{mode}-hook}. | |||
| 921 | @node Mode Hooks | 934 | @node Mode Hooks |
| 922 | @subsection Mode Hooks | 935 | @subsection Mode Hooks |
| 923 | 936 | ||
| 924 | Every major mode function should finish by running its mode hook and | 937 | Every major mode command should finish by running its mode hook and |
| 925 | the mode-independent normal hook @code{after-change-major-mode-hook}. | 938 | the mode-independent normal hook @code{after-change-major-mode-hook}. |
| 926 | It does this by calling @code{run-mode-hooks}. If the major mode is a | 939 | It does this by calling @code{run-mode-hooks}. If the major mode is a |
| 927 | derived mode, that is if it calls another major mode (the parent mode) | 940 | derived mode, that is if it calls another major mode (the parent mode) |
| @@ -966,7 +979,7 @@ construct. | |||
| 966 | 979 | ||
| 967 | @defvar after-change-major-mode-hook | 980 | @defvar after-change-major-mode-hook |
| 968 | This is a normal hook run by @code{run-mode-hooks}. It is run at the | 981 | This is a normal hook run by @code{run-mode-hooks}. It is run at the |
| 969 | very end of every properly-written major mode function. | 982 | very end of every properly-written major mode command. |
| 970 | @end defvar | 983 | @end defvar |
| 971 | 984 | ||
| 972 | @node Example Major Modes | 985 | @node Example Major Modes |
| @@ -1194,8 +1207,8 @@ And here is the code to set up the keymap for Lisp mode: | |||
| 1194 | @end group | 1207 | @end group |
| 1195 | @end smallexample | 1208 | @end smallexample |
| 1196 | 1209 | ||
| 1197 | Finally, here is the complete major mode function definition for | 1210 | Finally, here is the complete major mode command definition for Lisp |
| 1198 | Lisp mode. | 1211 | mode. |
| 1199 | 1212 | ||
| 1200 | @smallexample | 1213 | @smallexample |
| 1201 | @group | 1214 | @group |
| @@ -2752,10 +2765,10 @@ highlighting patterns. See the variables | |||
| 2752 | @code{c-font-lock-extra-types}, @code{c++-font-lock-extra-types}, | 2765 | @code{c-font-lock-extra-types}, @code{c++-font-lock-extra-types}, |
| 2753 | and @code{java-font-lock-extra-types}, for example. | 2766 | and @code{java-font-lock-extra-types}, for example. |
| 2754 | 2767 | ||
| 2755 | @strong{Warning:} major mode functions must not call | 2768 | @strong{Warning:} major mode commands must not call |
| 2756 | @code{font-lock-add-keywords} under any circumstances, either directly | 2769 | @code{font-lock-add-keywords} under any circumstances, either directly |
| 2757 | or indirectly, except through their mode hooks. (Doing so would lead | 2770 | or indirectly, except through their mode hooks. (Doing so would lead to |
| 2758 | to incorrect behavior for some minor modes.) They should set up their | 2771 | incorrect behavior for some minor modes.) They should set up their |
| 2759 | rules for search-based fontification by setting | 2772 | rules for search-based fontification by setting |
| 2760 | @code{font-lock-keywords}. | 2773 | @code{font-lock-keywords}. |
| 2761 | @end defun | 2774 | @end defun |
diff --git a/doc/lispref/vol1.texi b/doc/lispref/vol1.texi index 3b7718814b5..c192e3bf4b7 100644 --- a/doc/lispref/vol1.texi +++ b/doc/lispref/vol1.texi | |||
| @@ -786,8 +786,7 @@ Major and Minor Modes | |||
| 786 | * Major Modes:: Defining major modes. | 786 | * Major Modes:: Defining major modes. |
| 787 | * Minor Modes:: Defining minor modes. | 787 | * Minor Modes:: Defining minor modes. |
| 788 | * Mode Line Format:: Customizing the text that appears in the mode line. | 788 | * Mode Line Format:: Customizing the text that appears in the mode line. |
| 789 | * Imenu:: How a mode can provide a menu | 789 | * Imenu:: Providing a menu of definitions made in a buffer. |
| 790 | of definitions in the buffer. | ||
| 791 | * Font Lock Mode:: How modes can highlight text according to syntax. | 790 | * Font Lock Mode:: How modes can highlight text according to syntax. |
| 792 | * Desktop Save Mode:: How modes can have buffer state saved between | 791 | * Desktop Save Mode:: How modes can have buffer state saved between |
| 793 | Emacs sessions. | 792 | Emacs sessions. |
| @@ -799,15 +798,15 @@ Hooks | |||
| 799 | 798 | ||
| 800 | Major Modes | 799 | Major Modes |
| 801 | 800 | ||
| 802 | * Major Mode Basics:: | ||
| 803 | * Major Mode Conventions:: Coding conventions for keymaps, etc. | 801 | * Major Mode Conventions:: Coding conventions for keymaps, etc. |
| 804 | * Auto Major Mode:: How Emacs chooses the major mode automatically. | 802 | * Auto Major Mode:: How Emacs chooses the major mode automatically. |
| 805 | * Mode Help:: Finding out how to use a mode. | 803 | * Mode Help:: Finding out how to use a mode. |
| 806 | * Derived Modes:: Defining a new major mode based on another major | 804 | * Derived Modes:: Defining a new major mode based on another major |
| 807 | mode. | 805 | mode. |
| 806 | * Basic Major Modes:: Modes that other modes are often derived from. | ||
| 808 | * Generic Modes:: Defining a simple major mode that supports | 807 | * Generic Modes:: Defining a simple major mode that supports |
| 809 | comment syntax and Font Lock mode. | 808 | comment syntax and Font Lock mode. |
| 810 | * Mode Hooks:: Hooks run at the end of major mode functions. | 809 | * Mode Hooks:: Hooks run at the end of major mode commands. |
| 811 | * Example Major Modes:: Text mode and Lisp modes. | 810 | * Example Major Modes:: Text mode and Lisp modes. |
| 812 | 811 | ||
| 813 | Minor Modes | 812 | Minor Modes |
diff --git a/doc/lispref/vol2.texi b/doc/lispref/vol2.texi index 22a51d3235c..8e78a5fb5ca 100644 --- a/doc/lispref/vol2.texi +++ b/doc/lispref/vol2.texi | |||
| @@ -785,8 +785,7 @@ Major and Minor Modes | |||
| 785 | * Major Modes:: Defining major modes. | 785 | * Major Modes:: Defining major modes. |
| 786 | * Minor Modes:: Defining minor modes. | 786 | * Minor Modes:: Defining minor modes. |
| 787 | * Mode Line Format:: Customizing the text that appears in the mode line. | 787 | * Mode Line Format:: Customizing the text that appears in the mode line. |
| 788 | * Imenu:: How a mode can provide a menu | 788 | * Imenu:: Providing a menu of definitions made in a buffer. |
| 789 | of definitions in the buffer. | ||
| 790 | * Font Lock Mode:: How modes can highlight text according to syntax. | 789 | * Font Lock Mode:: How modes can highlight text according to syntax. |
| 791 | * Desktop Save Mode:: How modes can have buffer state saved between | 790 | * Desktop Save Mode:: How modes can have buffer state saved between |
| 792 | Emacs sessions. | 791 | Emacs sessions. |
| @@ -798,15 +797,15 @@ Hooks | |||
| 798 | 797 | ||
| 799 | Major Modes | 798 | Major Modes |
| 800 | 799 | ||
| 801 | * Major Mode Basics:: | ||
| 802 | * Major Mode Conventions:: Coding conventions for keymaps, etc. | 800 | * Major Mode Conventions:: Coding conventions for keymaps, etc. |
| 803 | * Auto Major Mode:: How Emacs chooses the major mode automatically. | 801 | * Auto Major Mode:: How Emacs chooses the major mode automatically. |
| 804 | * Mode Help:: Finding out how to use a mode. | 802 | * Mode Help:: Finding out how to use a mode. |
| 805 | * Derived Modes:: Defining a new major mode based on another major | 803 | * Derived Modes:: Defining a new major mode based on another major |
| 806 | mode. | 804 | mode. |
| 805 | * Basic Major Modes:: Modes that other modes are often derived from. | ||
| 807 | * Generic Modes:: Defining a simple major mode that supports | 806 | * Generic Modes:: Defining a simple major mode that supports |
| 808 | comment syntax and Font Lock mode. | 807 | comment syntax and Font Lock mode. |
| 809 | * Mode Hooks:: Hooks run at the end of major mode functions. | 808 | * Mode Hooks:: Hooks run at the end of major mode commands. |
| 810 | * Example Major Modes:: Text mode and Lisp modes. | 809 | * Example Major Modes:: Text mode and Lisp modes. |
| 811 | 810 | ||
| 812 | Minor Modes | 811 | Minor Modes |
diff --git a/etc/ChangeLog b/etc/ChangeLog index 092aa6fb387..24c0fd54422 100644 --- a/etc/ChangeLog +++ b/etc/ChangeLog | |||
| @@ -1,3 +1,9 @@ | |||
| 1 | 2011-08-30 Paul Eggert <eggert@cs.ucla.edu> | ||
| 2 | |||
| 3 | * MACHINES: Remove obsolete info and update a bit (Bug#9404). | ||
| 4 | |||
| 5 | * PROBLEMS: Remove obsolete comment re Yellow Dog (Bug#9403). | ||
| 6 | |||
| 1 | 2011-08-24 Steve Chapel <schapel@laptop.stevechapel.com> (tiny change) | 7 | 2011-08-24 Steve Chapel <schapel@laptop.stevechapel.com> (tiny change) |
| 2 | 8 | ||
| 3 | * refcards/refcard.tex: Add a few more commands. (Bug#9343) | 9 | * refcards/refcard.tex: Add a few more commands. (Bug#9343) |
diff --git a/etc/MACHINES b/etc/MACHINES index 126ae40cb57..1e68376b94a 100644 --- a/etc/MACHINES +++ b/etc/MACHINES | |||
| @@ -24,227 +24,13 @@ file, and then edit the `configure' script to tell it which | |||
| 24 | configuration name(s) should select your new machine description and | 24 | configuration name(s) should select your new machine description and |
| 25 | system description files. | 25 | system description files. |
| 26 | 26 | ||
| 27 | Some obsolete platforms are unsupported beginning with Emacs 23.1, see | 27 | Some obsolete platforms are unsupported beginning with Emacs 23.1. See |
| 28 | the list at the end of this file. | 28 | the list at the end of this file. |
| 29 | 29 | ||
| 30 | 30 | ||
| 31 | ** Alpha (DEC) running GNU/Linux (alpha-dec-linux-gnu) | ||
| 32 | |||
| 33 | DEC C compiler version 5.9 (DEC C V5.9-005 on Digital UNIX V4.0f) | ||
| 34 | is reported to produce bogus binaries of Emacs 21.2 when the | ||
| 35 | command-line switches "-O4 -arch ev6 -tune ev6" are used. Using | ||
| 36 | just -O4 produces a good executable. | ||
| 37 | |||
| 38 | For 4.0 revision 564, and 4.0A and 4.0B, Emacs 20 seems to work | ||
| 39 | with no special configuration options. However, if you use GCC as | ||
| 40 | your compiler, you will need version 2.8.1 or later, as older | ||
| 41 | versions fail to build with a message "Invalid dimension for the | ||
| 42 | charset-ID 160". | ||
| 43 | |||
| 44 | ** Apple Macintosh running Mac OS X | ||
| 45 | |||
| 46 | ** Apple PowerPC Macintosh running GNU/Linux | ||
| 47 | |||
| 48 | ** HP 9000 series 700 or 800 (Spectrum) (hppa1.0-hp-hpux or hppa1.1-hp-hpux) | ||
| 49 | |||
| 50 | Emacs 20 may work on HPUX 10. You need patch PHSS_6202 to install | ||
| 51 | the Xaw and Xmu libraries. On HPUX 10.20 you may need to compile with GCC; | ||
| 52 | when Emacs was compiled with HP's C compiler, HP92453-01 A.10.32.03, | ||
| 53 | the subprocess features failed to work. | ||
| 54 | |||
| 55 | If you turn on the DSUSP character (delayed suspend), Emacs 19.26 | ||
| 56 | does not know how to turn it off on HPUX. You need to turn it off manually. | ||
| 57 | |||
| 58 | If you are running HP/UX release 8.0 or later, you need the optional | ||
| 59 | "C/ANSI C" software in order to build Emacs (older releases of HP/UX | ||
| 60 | do not require any special software). If the file "/etc/filesets/C" | ||
| 61 | exists on your machine, you have this software, otherwise you do not. | ||
| 62 | |||
| 63 | ** IBM RS/6000 (rs6000-ibm-aix*) | ||
| 64 | |||
| 65 | Emacs 19.26 is believed to work; its pretest was tested. | ||
| 66 | |||
| 67 | Compiling with the system's `cc' and CFLAGS containing `-O5' might | ||
| 68 | fail because libXbsd isn't found. This is a compiler bug; | ||
| 69 | re-configure Emacs so that it isn't compiled with `-O5'. | ||
| 70 | |||
| 71 | On AIX 4.3.x and 4.4, compiling with /bin/c89 fails because it | ||
| 72 | treats certain warnings as errors. Use `cc' instead. | ||
| 73 | |||
| 74 | At last report, Emacs didn't run well on terminals. Informed | ||
| 75 | persons say that the tty VMIN and VTIME settings have been | ||
| 76 | corrupted; if you have a fix, please send it to us. | ||
| 77 | |||
| 78 | Compiling with -O using the IBM compiler has been known to make | ||
| 79 | Emacs work incorrectly. There are reports that IBM compiler versions | ||
| 80 | earlier than 1.03.00.02 fail even without -O. | ||
| 81 | |||
| 82 | As of 19.11, if you strip the Emacs executable, it ceases to work. | ||
| 83 | |||
| 84 | If anyone can fix the above problems, or confirm that they don't happen | ||
| 85 | with certain versions of various programs, we would appreciate it. | ||
| 86 | |||
| 87 | ** IBM System/390 running GNU/Linux (s390-*-linux-gnu) | ||
| 88 | |||
| 89 | As of Emacs 21.2, a 31-bit only version is supported on this system. | ||
| 90 | |||
| 91 | ** Intel 386 (i386-*-freebsd, i386-*-linux-gnu, | ||
| 92 | i386-*-cygwin, i386-*-msdos, i386-*-windowsnt. | ||
| 93 | i386 can be replaced with i486, i586, or i686) | ||
| 94 | |||
| 95 | In the above configurations, * means that the manufacturer's name | ||
| 96 | you specify does not matter, and you can use any name you like | ||
| 97 | (but it should not contain any dashes or stars). | ||
| 98 | |||
| 99 | Use i386-*-linux-gnu for GNU/Linux systems; Emacs runs as of version 19.26. | ||
| 100 | Use i386-*-cygwin for Cygwin; Emacs builds as of version 22.1, in both X11 | ||
| 101 | and non-X11 modes. (The Cygwin site has source and binaries for 21.2.) | ||
| 102 | |||
| 103 | On GNU/Linux systems, Emacs 19.23 was said to work properly with libc | ||
| 104 | version 4.5.21, but not with 4.5.19. | ||
| 105 | |||
| 106 | On GNU/Linux, configure may fail to put these definitions in config.h: | ||
| 107 | |||
| 108 | #define HAVE_GETTIMEOFDAY | ||
| 109 | #define HAVE_MKDIR | ||
| 110 | #define HAVE_RMDIR | ||
| 111 | #define HAVE_XSCREENNUMBEROFSCREEN | ||
| 112 | |||
| 113 | To work around the problem, add those definitions by hand. | ||
| 114 | It is possible that this problem happens only with X11R6. | ||
| 115 | Newer system versions have fixed it. | ||
| 116 | |||
| 117 | On NetBSD and FreeBSD, at one time, it was necessary to use | ||
| 118 | GNU make, not the system's make. Assuming it's installed as gmake, | ||
| 119 | do `gmake install MAKE=gmake'. However, more recently it is | ||
| 120 | reported that using the system Make on NetBSD 1.3.1 works ok. | ||
| 121 | |||
| 122 | Note that use of Linux with GCC 2.4 and the DLL 4.4 libraries | ||
| 123 | requires the experimental "net 2" network patches (no relation to | ||
| 124 | Berkeley Net 2). There is a report that (some version of) Linux | ||
| 125 | requires including `/usr/src/linux/include/linux' in buffer.c | ||
| 126 | but no coherent explanation of why that might be so. If it is so, | ||
| 127 | in current versions of Linux, something else should probably be changed. | ||
| 128 | |||
| 129 | You may find that adding -I/usr/X/include or -I/usr/netinclude or both | ||
| 130 | to CFLAGS avoids compilation errors on certain systems. | ||
| 131 | |||
| 132 | Some versions convince sysdep.c to try to use `struct tchars' | ||
| 133 | but define `struct tc' instead; add `#define tchars tc' | ||
| 134 | to config.h to solve this problem. | ||
| 135 | |||
| 136 | ** Iris 4D (mips-sgi-irix6.*) | ||
| 137 | |||
| 138 | Emacs 21.3 is reported to work on IRIX 6.5.x. | ||
| 139 | |||
| 140 | You can build a 64-bit executable (with larger maximum buffer size) | ||
| 141 | on Irix 6.5 by specifying the 64-bit ABI using the `-64' compiler | ||
| 142 | flag or otherwise (see cc(1)). | ||
| 143 | |||
| 144 | If compiling with GCC on Irix 6 yields an error "conflicting types | ||
| 145 | for `initstate'", install GCC 2.95 or a newer version, and this | ||
| 146 | problem should go away. It is possible that this problem results | ||
| 147 | from upgrading the operating system without reinstalling GCC; so you | ||
| 148 | could also try reinstalling the same version of GCC, and telling us | ||
| 149 | whether that fixes the problem. | ||
| 150 | |||
| 151 | ** Sun 4 (sparc), Sun 386 (sparc-sun-solaris2.*, | ||
| 152 | i386-sun-solaris2.*, sparc*-*-linux-gnu) | ||
| 153 | |||
| 154 | To build a 32-bit Emacs (i.e. if you are having any sort of problem | ||
| 155 | bootstrapping a 64-bit version), you can use the Sun Studio compiler | ||
| 156 | and configure Emacs with: | ||
| 157 | env CC="cc -xarch=v7" CFLAGS='' ./configure # on SPARC systems | ||
| 158 | env CC="cc -xarch=386" CFLAGS='' ./configure # on x86 systems | ||
| 159 | On Solaris 2.10, it is also possible to use /usr/sfw/bin/gcc to build | ||
| 160 | a 32-bit version of Emacs. Just make sure you point ./configure to | ||
| 161 | the right compiler: | ||
| 162 | |||
| 163 | env CC='/usr/sfw/bin/gcc -m32' ./configure | ||
| 164 | |||
| 165 | To build a 64-bit Emacs (with larger maximum buffer size and | ||
| 166 | including large file support) on a Solaris system which supports | ||
| 167 | 64-bit executables, use the Sun compiler, configuring something like | ||
| 168 | this (see the cc documentation for information on 64-bit | ||
| 169 | compilation): | ||
| 170 | |||
| 171 | env CC="cc -xarch=v9" CFLAGS='' ./configure # on SPARC systems | ||
| 172 | env CC="cc -xarch=amd64" CFLAGS='' ./configure # on x86 systems | ||
| 173 | |||
| 174 | As of version 2.95, GCC doesn't support the 64-bit ABI properly, but | ||
| 175 | later releases may. | ||
| 176 | |||
| 177 | Some versions of Solaris 8 have a bug in their XIM (X Input Method) | ||
| 178 | implementation which causes Emacs to dump core when one of several | ||
| 179 | frames is closed. To avoid this, either install patch 108773-12 | ||
| 180 | (for Sparc) or 108874-12 (for x86), or configure Emacs with the | ||
| 181 | `--with-xim=no' switch (you can use Leim input methods instead). | ||
| 182 | |||
| 183 | On Solaris 2.7, building Emacs with WorkShop Compilers 5.0 98/12/15 | ||
| 184 | C 5.0 failed, apparently with non-default CFLAGS, most probably due to | ||
| 185 | compiler bugs. Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C | ||
| 186 | release was reported to work without problems. It worked OK on | ||
| 187 | another system with Solaris 8 using apparently the same 5.0 compiler | ||
| 188 | and the default CFLAGS. | ||
| 189 | |||
| 190 | Emacs 21.1 and 21.2 built with Sun's ProWorks PC3.0.1 compiler on | ||
| 191 | Intel/Solaris 8 was reported to abort and dump core during startup. | ||
| 192 | Using GCC or a newer SUN compiler (Sun WokShop 6 update 2 C 5.3 | ||
| 193 | 2001/05/15) solves the problem. | ||
| 194 | |||
| 195 | Emacs 20.5 and later work on SPARC GNU/Linux with the 32-bit ABI. | ||
| 196 | As of release 2.95, GCC doesn't work properly with the 64-bit ABI | ||
| 197 | (applicable on UltraSPARC), but that isn't the default mode. | ||
| 198 | |||
| 199 | There are reports that using SunSoft cc with -xO4 -xdepend produces | ||
| 200 | bad code for some part of Emacs. | ||
| 201 | |||
| 202 | Some people report that Emacs crashes immediately on startup when | ||
| 203 | used with a non-X terminal, but we think this is due to compiling | ||
| 204 | with GCC and failing to use GCC's "fixed" system header files. | ||
| 205 | |||
| 206 | Some Sun versions of X windows use the clipboard, not the selections, | ||
| 207 | for transferring text between clients. The Cut, Paste and Copy items | ||
| 208 | in the menu bar Edit menu work with the clipboard. | ||
| 209 | |||
| 210 | If you compile with Sun's ANSI compiler acc, you need additional options | ||
| 211 | when linking temacs, such as | ||
| 212 | /usr/lang/SC2.0.1/values-Xt.o -L/usr/lang/SC2.0.1/cg87 -L/usr/lang/SC2.0.1 | ||
| 213 | (those should be added just before the libraries) and you need to | ||
| 214 | add -lansi just before -lc. The precise file names depend on the | ||
| 215 | compiler version, so we cannot easily arrange to supply them. | ||
| 216 | |||
| 217 | On Solaris 2, you need to install patch 100947-02 to fix a system bug. | ||
| 218 | Presumably this patch comes from Sun. You must alter the definition of | ||
| 219 | LD_SWITCH_SYSTEM if your X11 libraries are not in /usr/openwin/lib. | ||
| 220 | You must make sure that /usr/ucblib is not in your LD_LIBRARY_PATH. | ||
| 221 | |||
| 222 | On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make | ||
| 223 | sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before | ||
| 224 | /usr/ucb. (Most free software packages have the same requirement on | ||
| 225 | Solaris.) With this compiler, use `/opt/SUNWspro/bin/cc -E' as the | ||
| 226 | preprocessor. If this inserts extra whitespace into its output (see | ||
| 227 | the PROBLEMS file) then add the option `-Xs'. | ||
| 228 | |||
| 229 | If you have trouble using open-network-stream, get the distribution | ||
| 230 | of `bind' (the BSD name-server), build libresolv.a, and link Emacs | ||
| 231 | with -lresolv, by editing LIBRESOLV in src/Makefile. This problem is | ||
| 232 | due to obsolete software in the nonshared standard library. | ||
| 233 | |||
| 234 | Note that Emacs on a Sun is not really as big as it looks. As | ||
| 235 | dumped, it includes around 200k of zeros between the original text | ||
| 236 | section and the original data section (now remapped as part of the | ||
| 237 | text). These are never swapped in. | ||
| 238 | |||
| 239 | ** SuperH (sh[34]*-*-linux-gnu) | ||
| 240 | |||
| 241 | Emacs 23.0.60 was reported to work on GNU/Linux (October 2008). | ||
| 242 | Tested on a little-endian sh4 system (cpu type SH7751R) running | ||
| 243 | Gentoo Linux 2008.0. | ||
| 244 | |||
| 245 | * Here are notes about some of the systems supported: | 31 | * Here are notes about some of the systems supported: |
| 246 | 32 | ||
| 247 | ** Linux (actually GNU/Linux) | 33 | ** GNU/Linux |
| 248 | 34 | ||
| 249 | Most of the complete systems which use the Linux kernel are close | 35 | Most of the complete systems which use the Linux kernel are close |
| 250 | enough to the GNU system to be considered variant GNU systems. We | 36 | enough to the GNU system to be considered variant GNU systems. We |
| @@ -263,31 +49,63 @@ the list at the end of this file. | |||
| 263 | people to write more free software. See the file LINUX-GNU in this | 49 | people to write more free software. See the file LINUX-GNU in this |
| 264 | directory for more explanation. | 50 | directory for more explanation. |
| 265 | 51 | ||
| 52 | *** 64-bit GNU/Linux | ||
| 53 | |||
| 54 | No special procedures should be needed to build a 64-bit Emacs on a | ||
| 55 | 64-bit GNU/Linux system. To build a 32-bit Emacs, first ensure that | ||
| 56 | the necessary 32-bit system libraries and include files are | ||
| 57 | installed. Then use: | ||
| 58 | |||
| 59 | ./configure CC='gcc -m32' --build=i386-linux-gnu \ | ||
| 60 | --x-libraries=/usr/X11R6/lib | ||
| 61 | |||
| 62 | (using the location of the 32-bit X libraries on your system). | ||
| 63 | |||
| 64 | *** IBM System/390 running GNU/Linux (s390-*-linux-gnu) | ||
| 65 | |||
| 66 | As of Emacs 21.2, a 31-bit only version is supported on this system. | ||
| 67 | |||
| 68 | *** SuperH (sh[34]*-*-linux-gnu) | ||
| 69 | |||
| 70 | Emacs 23.0.60 was reported to work on GNU/Linux (October 2008). | ||
| 71 | This was tested on a little-endian sh4 system (cpu type SH7751R) running | ||
| 72 | Gentoo Linux 2008.0. | ||
| 73 | |||
| 266 | ** Mac OS X | 74 | ** Mac OS X |
| 267 | 75 | ||
| 268 | For installation instructions see the file nextstep/INSTALL. | 76 | For installation instructions see the file nextstep/INSTALL. |
| 269 | 77 | ||
| 270 | ** MSDOS | 78 | ** Microsoft Windows |
| 271 | 79 | ||
| 272 | For installation on MSDOS, see the file msdos/INSTALL. | 80 | For installation instructions see the file nt/INSTALL. |
| 81 | |||
| 82 | ** MS-DOS | ||
| 83 | |||
| 84 | For installation instructions see the file msdos/INSTALL. | ||
| 273 | See the "MS-DOS" chapter of the manual for information about using | 85 | See the "MS-DOS" chapter of the manual for information about using |
| 274 | Emacs on MSDOS. | 86 | Emacs on MS-DOS. |
| 275 | 87 | ||
| 276 | ** MS-Windows NT/95/98/ME/2000 | 88 | ** Solaris |
| 277 | 89 | ||
| 278 | For installation on all versions of the MS-Windows platform, see the | 90 | On Solaris it is also possible to use either GCC or Solaris Studio |
| 279 | file nt/INSTALL. | 91 | to build Emacs, by pointing ./configure to the right compiler: |
| 280 | 92 | ||
| 281 | ** X86_64 GNU/Linux | 93 | ./configure CC='/usr/sfw/bin/gcc' # GCC |
| 94 | ./configure CC='cc' # Solaris Studio | ||
| 282 | 95 | ||
| 283 | No special procedures should be needed to build a 64-bit Emacs. To | 96 | On Solaris, do not use /usr/ucb/cc. Use /opt/SUNWspro/bin/cc. Make |
| 284 | build a 32-bit Emacs, first ensure that the necessary 32-bit system | 97 | sure that /usr/ccs/bin and /opt/SUNWspro/bin are in your PATH before |
| 285 | libraries and include files are installed. Then use: | 98 | /usr/ucb. (Most free software packages have the same requirement on |
| 99 | Solaris.) With this compiler, use `/opt/SUNWspro/bin/cc -E' as the | ||
| 100 | preprocessor. If this inserts extra whitespace into its output (see | ||
| 101 | the PROBLEMS file) then add the option `-Xs'. | ||
| 286 | 102 | ||
| 287 | env CC="gcc -m32" ./configure --build=i386-linux-gnu \ | 103 | To build a 64-bit Emacs (with larger maximum buffer size) on a |
| 288 | --x-libraries=/usr/X11R6/lib | 104 | Solaris system which supports 64-bit executables, specify the -m64 |
| 105 | compiler option. For example: | ||
| 289 | 106 | ||
| 290 | (using the location of the 32-bit X libraries on your system). | 107 | ./configure CC='/usr/sfw/bin/gcc -m64' # GCC |
| 108 | ./configure CC='cc -m64' # Solaris Studio | ||
| 291 | 109 | ||
| 292 | 110 | ||
| 293 | * Obsolete platforms | 111 | * Obsolete platforms |
| @@ -43,10 +43,12 @@ to configure. Note that other libraries used by Emacs, RSVG and GConf, | |||
| 43 | also depend on Gtk+. You can disable them with --without-rsvg and | 43 | also depend on Gtk+. You can disable them with --without-rsvg and |
| 44 | --without-gconf. | 44 | --without-gconf. |
| 45 | 45 | ||
| 46 | --- | ||
| 46 | ** There is a new configure option --enable-use-lisp-union-type. | 47 | ** There is a new configure option --enable-use-lisp-union-type. |
| 47 | This is only useful for Emacs developers to debug certain types of bugs. | 48 | This is only useful for Emacs developers to debug certain types of bugs. |
| 48 | This is not a new feature; only the configure flag is new. | 49 | This is not a new feature; only the configure flag is new. |
| 49 | 50 | ||
| 51 | --- | ||
| 50 | ** There is a new configure option --with-wide-int. | 52 | ** There is a new configure option --with-wide-int. |
| 51 | With it, Emacs integers typically have 62 bits, even on 32-bit machines. | 53 | With it, Emacs integers typically have 62 bits, even on 32-bit machines. |
| 52 | 54 | ||
| @@ -87,6 +89,7 @@ and also when HOME is set to C:\ by default. | |||
| 87 | 89 | ||
| 88 | * Changes in Emacs 24.1 | 90 | * Changes in Emacs 24.1 |
| 89 | 91 | ||
| 92 | +++ | ||
| 90 | ** auto-mode-case-fold is now enabled by default. | 93 | ** auto-mode-case-fold is now enabled by default. |
| 91 | 94 | ||
| 92 | ** Completion | 95 | ** Completion |
| @@ -314,15 +317,12 @@ for `list-colors-display'. | |||
| 314 | 317 | ||
| 315 | ** An Emacs Lisp package manager is now included. | 318 | ** An Emacs Lisp package manager is now included. |
| 316 | This is a convenient way to download and install additional packages, | 319 | This is a convenient way to download and install additional packages, |
| 317 | from a package repository at elpa.gnu.org. | 320 | from a package repository at http://elpa.gnu.org. |
| 318 | |||
| 319 | +++ | 321 | +++ |
| 320 | *** `M-x list-packages' shows a list of packages, which can be | 322 | *** `M-x list-packages' shows a list of packages, which can be |
| 321 | selected for installation. | 323 | selected for installation. |
| 322 | |||
| 323 | +++ | 324 | +++ |
| 324 | *** New command `describe-package', bound to `C-h P'. | 325 | *** New command `describe-package', bound to `C-h P'. |
| 325 | |||
| 326 | +++ | 326 | +++ |
| 327 | *** By default, all installed packages are loaded and activated | 327 | *** By default, all installed packages are loaded and activated |
| 328 | automatically when Emacs starts up. To disable this, set | 328 | automatically when Emacs starts up. To disable this, set |
| @@ -479,10 +479,8 @@ between applications. | |||
| 479 | +++ | 479 | +++ |
| 480 | *** Support for X cut buffers has been removed. | 480 | *** Support for X cut buffers has been removed. |
| 481 | 481 | ||
| 482 | *** Support for X clipboard managers has been added. | 482 | *** X clipboard managers are now supported. |
| 483 | 483 | To inhibit this, change `x-select-enable-clipboard-manager' to nil. | |
| 484 | **** To inhibit use of the clipboard manager, set | ||
| 485 | `x-select-enable-clipboard-manager' to nil. | ||
| 486 | 484 | ||
| 487 | ** New command `rectangle-number-lines', bound to `C-x r N', numbers | 485 | ** New command `rectangle-number-lines', bound to `C-x r N', numbers |
| 488 | the lines in the current rectangle. With an prefix argument, this | 486 | the lines in the current rectangle. With an prefix argument, this |
| @@ -1032,6 +1030,7 @@ syntactic rules. | |||
| 1032 | 1030 | ||
| 1033 | ** frame-local variables cannot be let-bound any more. | 1031 | ** frame-local variables cannot be let-bound any more. |
| 1034 | 1032 | ||
| 1033 | +++ | ||
| 1035 | ** prog-mode is a new major-mode meant to be the parent of programming mode. | 1034 | ** prog-mode is a new major-mode meant to be the parent of programming mode. |
| 1036 | The prog-mode-hook it defines can be used to enable features for | 1035 | The prog-mode-hook it defines can be used to enable features for |
| 1037 | programming modes. For example: | 1036 | programming modes. For example: |
diff --git a/etc/PROBLEMS b/etc/PROBLEMS index 2f344955cb2..1869124987a 100644 --- a/etc/PROBLEMS +++ b/etc/PROBLEMS | |||
| @@ -2648,43 +2648,6 @@ of PURESIZE in puresize.h. | |||
| 2648 | But in some of the cases listed above, this problem is a consequence | 2648 | But in some of the cases listed above, this problem is a consequence |
| 2649 | of something else that is wrong. Be sure to check and fix the real problem. | 2649 | of something else that is wrong. Be sure to check and fix the real problem. |
| 2650 | 2650 | ||
| 2651 | *** Linux: Emacs crashes when dumping itself on Mac PPC running Yellow Dog GNU/Linux. | ||
| 2652 | |||
| 2653 | The crashes happen inside the function Fmake_symbol; here's a typical | ||
| 2654 | C backtrace printed by GDB: | ||
| 2655 | |||
| 2656 | 0x190c0c0 in Fmake_symbol () | ||
| 2657 | (gdb) where | ||
| 2658 | #0 0x190c0c0 in Fmake_symbol () | ||
| 2659 | #1 0x1942ca4 in init_obarray () | ||
| 2660 | #2 0x18b3500 in main () | ||
| 2661 | #3 0x114371c in __libc_start_main (argc=5, argv=0x7ffff5b4, envp=0x7ffff5cc, | ||
| 2662 | |||
| 2663 | This could happen because GCC version 2.95 and later changed the base | ||
| 2664 | of the load address to 0x10000000. Emacs needs to be told about this, | ||
| 2665 | but we currently cannot do that automatically, because that breaks | ||
| 2666 | other versions of GNU/Linux on the MacPPC. Until we find a way to | ||
| 2667 | distinguish between the Yellow Dog and the other varieties of | ||
| 2668 | GNU/Linux systems on the PPC, you will have to manually uncomment the | ||
| 2669 | following section near the end of the file src/m/macppc.h in the Emacs | ||
| 2670 | distribution: | ||
| 2671 | |||
| 2672 | #if 0 /* This breaks things on PPC GNU/Linux except for Yellowdog, | ||
| 2673 | even with identical GCC, as, ld. Let's take it out until we | ||
| 2674 | know what's really going on here. */ | ||
| 2675 | /* GCC 2.95 and newer on GNU/Linux PPC changed the load address to | ||
| 2676 | 0x10000000. */ | ||
| 2677 | #if defined __linux__ | ||
| 2678 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95) | ||
| 2679 | #define DATA_SEG_BITS 0x10000000 | ||
| 2680 | #endif | ||
| 2681 | #endif | ||
| 2682 | #endif /* 0 */ | ||
| 2683 | |||
| 2684 | Remove the "#if 0" and "#endif" directives which surround this, save | ||
| 2685 | the file, and then reconfigure and rebuild Emacs. The dumping process | ||
| 2686 | should now succeed. | ||
| 2687 | |||
| 2688 | *** OpenBSD 4.0 macppc: Segfault during dumping. | 2651 | *** OpenBSD 4.0 macppc: Segfault during dumping. |
| 2689 | 2652 | ||
| 2690 | The build aborts with signal 11 when the command `./temacs --batch | 2653 | The build aborts with signal 11 when the command `./temacs --batch |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 03423942f4f..15296e09b46 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-08-29 Juri Linkov <juri@jurta.org> | ||
| 2 | |||
| 3 | * isearch.el (isearch-done): Don't display message "Mark saved" | ||
| 4 | when arg `edit' is non-nil to prevent its flicker in the echo area. | ||
| 5 | |||
| 1 | 2011-08-28 Chong Yidong <cyd@stupidchicken.com> | 6 | 2011-08-28 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 7 | ||
| 3 | * emacs-lisp/package.el (package-menu-mark-delete): Allow marking | 8 | * emacs-lisp/package.el (package-menu-mark-delete): Allow marking |
diff --git a/lisp/isearch.el b/lisp/isearch.el index 8764952dbf5..6eab3dbcbc4 100644 --- a/lisp/isearch.el +++ b/lisp/isearch.el | |||
| @@ -952,7 +952,7 @@ NOPUSH is t and EDIT is t." | |||
| 952 | (or (and transient-mark-mode mark-active) | 952 | (or (and transient-mark-mode mark-active) |
| 953 | (progn | 953 | (progn |
| 954 | (push-mark isearch-opoint t) | 954 | (push-mark isearch-opoint t) |
| 955 | (or executing-kbd-macro (> (minibuffer-depth) 0) | 955 | (or executing-kbd-macro (> (minibuffer-depth) 0) edit |
| 956 | (message "Mark saved where search started"))))) | 956 | (message "Mark saved where search started"))))) |
| 957 | 957 | ||
| 958 | (and (not edit) isearch-recursive-edit (exit-recursive-edit))) | 958 | (and (not edit) isearch-recursive-edit (exit-recursive-edit))) |