diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | doc/lispref/ChangeLog | 18 | ||||
-rw-r--r-- | doc/lispref/commands.texi | 11 | ||||
-rw-r--r-- | doc/lispref/help.texi | 11 | ||||
-rw-r--r-- | doc/lispref/hooks.texi | 9 | ||||
-rw-r--r-- | doc/lispref/modes.texi | 38 | ||||
-rw-r--r-- | doc/lispref/processes.texi | 3 | ||||
-rw-r--r-- | doc/lispref/text.texi | 5 | ||||
-rw-r--r-- | etc/NEWS | 14 | ||||
-rw-r--r-- | lisp/ChangeLog | 12 | ||||
-rw-r--r-- | lisp/image-mode.el | 2 | ||||
-rw-r--r-- | lisp/server.el | 11 | ||||
-rw-r--r-- | lisp/subr.el | 10 | ||||
-rw-r--r-- | src/ChangeLog | 10 | ||||
-rw-r--r-- | src/callproc.c | 5 | ||||
-rw-r--r-- | src/nsterm.m | 12 | ||||
-rw-r--r-- | src/w32term.c | 5 | ||||
-rw-r--r-- | src/xterm.c | 5 |
19 files changed, 144 insertions, 46 deletions
diff --git a/ChangeLog b/ChangeLog index 731bd80d549..cfcfab4ee33 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2012-02-02 Glenn Morris <rgm@gnu.org> + + * configure.in [HAVE_NS]: + Error if use --without-toolkit-scroll-bars. (Bug#10673) + 2012-02-01 Paul Eggert <eggert@cs.ucla.edu> Port to older Solaris 10 versions (Bug#10677). diff --git a/configure.in b/configure.in index 9eae1a51767..1d3810253ab 100644 --- a/configure.in +++ b/configure.in @@ -1568,6 +1568,10 @@ ns_frag=/dev/null NS_OBJ= NS_OBJC_OBJ= if test "${HAVE_NS}" = yes; then + if test "$with_toolkit_scroll_bars" = "no"; then + AC_MSG_ERROR([Native scroll bars are not implemented for Nextstep.]) + fi + window_system=nextstep with_xft=no # set up packaging dirs diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog index 6a8b7750f0b..b441248858e 100644 --- a/doc/lispref/ChangeLog +++ b/doc/lispref/ChangeLog @@ -1,3 +1,21 @@ +2012-02-02 Glenn Morris <rgm@gnu.org> + + * processes.texi (Synchronous Processes): + Mention call-process's :file gets overwritten. + + * commands.texi (Reading One Event): + * help.texi (Help Functions): Document read-char-choice. + + * hooks.texi (Standard Hooks): + * modes.texi (Keymaps and Minor Modes): + * text.texi (Commands for Insertion): Document post-self-insert-hook. + + * hooks.texi (Standard Hooks): Add prog-mode-hook. + + * hooks.texi (Standard Hooks): + * modes.texi (Major Mode Conventions, Mode Hooks): + Document change-major-mode-after-body-hook. + 2012-02-01 Glenn Morris <rgm@gnu.org> * modes.texi (Defining Minor Modes): diff --git a/doc/lispref/commands.texi b/doc/lispref/commands.texi index 3d2b813b592..aff7a0c5f27 100644 --- a/doc/lispref/commands.texi +++ b/doc/lispref/commands.texi @@ -2472,6 +2472,17 @@ The argument @var{prompt} is either a string to be displayed in the echo area as a prompt, or @code{nil}, meaning not to display a prompt. @end defun +@defun read-char-choice prompt chars &optional inhibit-quit +This function uses @code{read-key} to read and return a single +character. It ignores any input that is not a member of @var{chars}, +a list of accepted characters. Optionally, it will also ignore +keyboard-quit events while it is waiting for valid input. If you bind +@code{help-form} (@pxref{Help Functions}) to a non-@code{nil} value +while calling @code{read-char-choice}, then pressing @code{help-char} +causes it to evaluate @code{help-form} and display the result. It +then continues to wait for a valid input character, or keyboard-quit. +@end defun + @node Event Mod @subsection Modifying and Translating Input Events diff --git a/doc/lispref/help.texi b/doc/lispref/help.texi index 678ea83465f..f6556639e98 100644 --- a/doc/lispref/help.texi +++ b/doc/lispref/help.texi @@ -582,11 +582,12 @@ If this variable is non-@code{nil}, its value is a form to evaluate whenever the character @code{help-char} is read. If evaluating the form produces a string, that string is displayed. -A command that calls @code{read-event} or @code{read-char} probably -should bind @code{help-form} to a non-@code{nil} expression while it -does input. (The time when you should not do this is when @kbd{C-h} has -some other meaning.) Evaluating this expression should result in a -string that explains what the input is for and how to enter it properly. +A command that calls @code{read-event}, @code{read-char-choice}, or +@code{read-char} probably should bind @code{help-form} to a +non-@code{nil} expression while it does input. (The time when you +should not do this is when @kbd{C-h} has some other meaning.) +Evaluating this expression should result in a string that explains +what the input is for and how to enter it properly. Entry to the minibuffer binds this variable to the value of @code{minibuffer-help-form} (@pxref{Definition of minibuffer-help-form}). diff --git a/doc/lispref/hooks.texi b/doc/lispref/hooks.texi index 95655324ab4..ef3ebc4be35 100644 --- a/doc/lispref/hooks.texi +++ b/doc/lispref/hooks.texi @@ -127,6 +127,9 @@ not exactly a hook, but does a similar job. @xref{Calendar Customizing,,, emacs}. @end ifnottex +@item change-major-mode-after-body-hook +@xref{Mode Hooks}. + @item change-major-mode-hook @xref{Creating Buffer-Local}. @@ -292,9 +295,15 @@ Manual}. @item post-command-hook @xref{Command Overview}. +@item post-self-insert-hook +@xref{Keymaps and Minor Modes}. + @item pre-command-hook @xref{Command Overview}. +@item prog-mode-hook +@xref{Basic Major Modes}. + @item resume-tty-functions @xref{Suspending Emacs}. diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi index f8a21e003e0..0eda905f82f 100644 --- a/doc/lispref/modes.texi +++ b/doc/lispref/modes.texi @@ -468,8 +468,9 @@ other packages would interfere with them. @cindex major mode hook Each major mode should have a normal @dfn{mode hook} named @code{@var{modename}-mode-hook}. The very last thing the major mode command -should do is to call @code{run-mode-hooks}. This runs the mode hook, -and then runs the normal hook @code{after-change-major-mode-hook}. +should do is to call @code{run-mode-hooks}. This runs the normal +hook @code{change-major-mode-after-body-hook}, the mode hook, +and then the normal hook @code{after-change-major-mode-hook}. @xref{Mode Hooks}. @item @@ -939,8 +940,9 @@ before it runs the mode hook variable @code{@var{mode}-hook}. @node Mode Hooks @subsection Mode Hooks - Every major mode command should finish by running its mode hook and -the mode-independent normal hook @code{after-change-major-mode-hook}. + Every major mode command should finish by running the mode-independent +normal hook @code{change-major-mode-after-body-hook}, its mode hook, +and the normal hook @code{after-change-major-mode-hook}. It does this by calling @code{run-mode-hooks}. If the major mode is a derived mode, that is if it calls another major mode (the parent mode) in its body, it should do this inside @code{delay-mode-hooks} so that @@ -949,11 +951,12 @@ call to @code{run-mode-hooks} runs the parent's mode hook too. @xref{Major Mode Conventions}. Emacs versions before Emacs 22 did not have @code{delay-mode-hooks}. -When user-implemented major modes have not been updated to use it, -they won't entirely follow these conventions: they may run the -parent's mode hook too early, or fail to run -@code{after-change-major-mode-hook}. If you encounter such a major -mode, please correct it to follow these conventions. +Versions before 24 did not have @code{change-major-mode-after-body-hook}. +When user-implemented major modes do not use @code{run-mode-hooks} and +have not been updated to use these newer features, they won't entirely +follow these conventions: they may run the parent's mode hook too early, +or fail to run @code{after-change-major-mode-hook}. If you encounter +such a major mode, please correct it to follow these conventions. When you defined a major mode using @code{define-derived-mode}, it automatically makes sure these conventions are followed. If you @@ -963,6 +966,7 @@ use the following functions to handle these conventions automatically. @defun run-mode-hooks &rest hookvars Major modes should run their mode hook using this function. It is similar to @code{run-hooks} (@pxref{Hooks}), but it also runs +@code{change-major-mode-after-body-hook} and @code{after-change-major-mode-hook}. When this function is called during the execution of a @@ -982,6 +986,11 @@ The hooks will actually run during the next call to construct. @end defmac +@defvar change-major-mode-after-body-hook +This is a normal hook run by @code{run-mode-hooks}. It is run before +the mode hooks. +@end defvar + @defvar after-change-major-mode-hook This is a normal hook run by @code{run-mode-hooks}. It is run at the very end of every properly-written major mode command. @@ -1332,11 +1341,12 @@ alist @code{minor-mode-map-alist}. @xref{Definition of minor-mode-map-alist}. @cindex @code{self-insert-command}, minor modes One use of minor mode keymaps is to modify the behavior of certain self-inserting characters so that they do something else as well as -self-insert. In general, this is the only way to do that, since the -facilities for customizing @code{self-insert-command} are limited to -special cases (designed for abbrevs and Auto Fill mode). (Do not try -substituting your own definition of @code{self-insert-command} for the -standard one. The editor command loop handles this function specially.) +self-insert. (Another way to customize @code{self-insert-command} is +through @code{post-self-insert-hook}. Apart from this, the facilities +for customizing @code{self-insert-command} are limited to special cases, +designed for abbrevs and Auto Fill mode. Do not try substituting your +own definition of @code{self-insert-command} for the standard one. The +editor command loop handles this function specially.) The key sequences bound in a minor mode should consist of @kbd{C-c} followed by one of @kbd{.,/?`'"[]\|~!#$%^&*()-_+=}. (The other diff --git a/doc/lispref/processes.texi b/doc/lispref/processes.texi index 38eb5a86471..4cfc954cd1f 100644 --- a/doc/lispref/processes.texi +++ b/doc/lispref/processes.texi @@ -300,7 +300,8 @@ MS-DOS doesn't support asynchronous subprocesses, so this option doesn't work there. @item @code{(:file @var{file-name})} -Send the output to the file name specified. +Send the output to the file name specified, overwriting it if it +already exists. @item @code{(@var{real-destination} @var{error-destination})} Keep the standard output stream separate from the standard error stream; diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi index 55b0c0a4be8..448634ba5a7 100644 --- a/doc/lispref/text.texi +++ b/doc/lispref/text.texi @@ -500,6 +500,11 @@ syntax. (@xref{Abbrevs}, and @ref{Syntax Class Table}.) It is also responsible for calling @code{blink-paren-function} when the inserted character has close parenthesis syntax (@pxref{Blinking}). +@vindex post-self-insert-hook +The final thing this command does is to run the hook +@code{post-self-insert-hook}. You could use this to automatically +reindent text as it is typed, for example. + Do not try substituting your own definition of @code{self-insert-command} for the standard one. The editor command loop handles this function specially. @@ -1237,11 +1237,13 @@ passing the hook functions as arguments to a "wrapping" function. *** New macro `with-wrapper-hook' for running an abnormal hook as a set of "wrapping" filters, similar to around advice. -** `server-eval-at' is provided to allow evaluating forms on different -Emacs server instances. ++++ +** The new function `server-eval-at' allows evaluation of Lisp forms on +named Emacs server instances, using TCP sockets. -** `call-process' allows a `(:file "file")' spec to redirect STDOUT to -a file. ++++ +** `call-process' and `call-process-region' allow a `(:file "file")' spec +to redirect STDOUT to a file. --- ** Variable `stack-trace-on-error' removed. @@ -1253,6 +1255,7 @@ jumping all the way to the top-level. ** The function format-time-string now supports the %N directive, for higher-resolution time stamps. ++++ ** New function `read-char-choice' reads a restricted set of characters, discarding any inputs not inside the set. @@ -1271,6 +1274,7 @@ syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords as-is; and syntax-propertize-rules which provides a new way to specify syntactic rules. ++++ ** New hook post-self-insert-hook run at the end of self-insert-command. +++ @@ -1283,10 +1287,12 @@ syntactic rules. *** `prog-mode' is a new major mode from which programming modes should be derived. ++++ **** `prog-mode-hook' can be used to enable features for programming modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable on-the-fly spell checking for comments and strings. ++++ *** New hook `change-major-mode-after-body-hook', run by `run-mode-hooks' just before any other mode hooks. diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 6c89f4e528d..7b1c34b2b6c 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,15 @@ +2012-02-02 Glenn Morris <rgm@gnu.org> + + * server.el (server-auth-dir): Doc fix. + (server-eval-at): Doc fix. Give an explicit error if !server-use-tcp. + + * subr.el (run-mode-hooks): Doc fix. + +2012-02-02 Juri Linkov <juri@jurta.org> + + * image-mode.el (image-toggle-display-image): Remove tautological + `major-mode' from the `derived-mode-p' test. + 2012-02-02 Kenichi Handa <handa@m17n.org> * (compose-region): Cancel previous change. diff --git a/lisp/image-mode.el b/lisp/image-mode.el index a9a8d15e6a0..953cb9e94a1 100644 --- a/lisp/image-mode.el +++ b/lisp/image-mode.el @@ -482,7 +482,7 @@ Remove text properties that display the image." "Show the image of the image file. Turn the image data into a real image, but only if the whole file was inserted." - (unless (derived-mode-p 'image-mode major-mode) + (unless (derived-mode-p 'image-mode) (error "The buffer is not in Image mode")) (let* ((filename (buffer-file-name)) (data-p (not (and filename diff --git a/lisp/server.el b/lisp/server.el index 9dcd1f3b1d9..a08f971e88c 100644 --- a/lisp/server.el +++ b/lisp/server.el @@ -126,6 +126,8 @@ port number." (defcustom server-auth-dir (locate-user-emacs-file "server/") "Directory for server authentication files. +We only use this if `server-use-tcp' is non-nil. +Otherwise we use `server-socket-dir'. NOTE: On FAT32 filesystems, directories are not secure; files can be read and modified by any user or process. @@ -1525,7 +1527,14 @@ only these files will be asked to be saved." nil) (defun server-eval-at (server form) - "Eval FORM on Emacs Server SERVER." + "Contact the Emacs server named SERVER and evaluate FORM there. +Returns the result of the evaluation, or signals an error if it +cannot contact the specified server. For example: + \(server-eval-at \"server\" '(emacs-pid)) +returns the process ID of the Emacs instance running \"server\". +This function requires the use of TCP sockets. " + (or server-use-tcp + (error "This function requires TCP sockets")) (let ((auth-file (expand-file-name server server-auth-dir)) (coding-system-for-read 'binary) (coding-system-for-write 'binary) diff --git a/lisp/subr.el b/lisp/subr.el index c9e213c86a0..36bca654208 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -1539,10 +1539,12 @@ if it is empty or a duplicate." (defun run-mode-hooks (&rest hooks) "Run mode hooks `delayed-mode-hooks' and HOOKS, or delay HOOKS. -Execution is delayed if the variable `delay-mode-hooks' is non-nil. -Otherwise, runs the mode hooks and then `after-change-major-mode-hook'. -Major mode functions should use this instead of `run-hooks' when running their -FOO-mode-hook." +If the variable `delay-mode-hooks' is non-nil, does not run any hooks, +just adds the HOOKS to the list `delayed-mode-hooks'. +Otherwise, runs hooks in the sequence: `change-major-mode-after-body-hook', +`delayed-mode-hooks' (in reverse order), HOOKS, and finally +`after-change-major-mode-hook'. Major mode functions should use +this instead of `run-hooks' when running their FOO-mode-hook." (if delay-mode-hooks ;; Delaying case. (dolist (hook hooks) diff --git a/src/ChangeLog b/src/ChangeLog index d291f5f4e64..7ccdca9f347 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,13 @@ +2012-02-02 Glenn Morris <rgm@gnu.org> + + * callproc.c (Fcall_process, Fcall_process_region): Doc fix. + + * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>: + Unconditionally set to t. (Bug#10673) + * nsterm.m (syms_of_nsterm) <x-toolkit-scroll-bars>: + * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>: + * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Doc fix. + 2012-02-02 Kenichi Handa <handa@m17n.org> (x_produce_glyphs): Cancel previous change. If cmp->glyph_len is diff --git a/src/callproc.c b/src/callproc.c index c5208fb93d9..b5b8cadeb68 100644 --- a/src/callproc.c +++ b/src/callproc.c @@ -164,7 +164,8 @@ The remaining arguments are optional. The program's input comes from file INFILE (nil means `/dev/null'). Insert output in BUFFER before point; t means current buffer; nil for BUFFER means discard it; 0 means discard and don't wait; and `(:file FILE)', where - FILE is a file name string, means that it should be written to that file. + FILE is a file name string, means that it should be written to that file + \(if the file already exists it is overwritten). BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case, REAL-BUFFER says what to do with standard output, as above, while STDERR-FILE says what to do with standard error in the child. @@ -940,7 +941,7 @@ Delete the text if fourth arg DELETE is non-nil. Insert output in BUFFER before point; t means current buffer; nil for BUFFER means discard it; 0 means discard and don't wait; and `(:file FILE)', where FILE is a file name string, means that it should be - written to that file. + written to that file (if the file already exists it is overwritten). BUFFER can also have the form (REAL-BUFFER STDERR-FILE); in that case, REAL-BUFFER says what to do with standard output, as above, while STDERR-FILE says what to do with standard error in the child. diff --git a/src/nsterm.m b/src/nsterm.m index 1fbd3813fc7..277af26f149 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1,6 +1,7 @@ /* NeXT/Open/GNUstep / MacOSX communication module. - Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2012 - Free Software Foundation, Inc. + +Copyright (C) 1989, 1993-1994, 2005-2006, 2008-2012 + Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -6739,13 +6740,8 @@ Only works on OSX 10.6 or later. */); A value of nil means Emacs doesn't use toolkit scroll bars. With the X Window system, the value is a symbol describing the X toolkit. Possible values are: gtk, motif, xaw, or xaw3d. -With MS Windows, the value is t. With Nextstep, the value is -t or nil. */); -#ifdef USE_TOOLKIT_SCROLL_BARS +With MS Windows or Nextstep, the value is t. */); Vx_toolkit_scroll_bars = Qt; -#else - Vx_toolkit_scroll_bars = Qnil; -#endif DEFVAR_BOOL ("x-use-underline-position-properties", x_use_underline_position_properties, diff --git a/src/w32term.c b/src/w32term.c index 57fdf070850..8a0e9efc943 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -1,6 +1,6 @@ /* Implementation of GUI terminal on the Microsoft W32 API. -Copyright (C) 1989, 1993-2012 Free Software Foundation, Inc. +Copyright (C) 1989, 1993-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -6432,8 +6432,7 @@ baseline level. The default value is nil. */); A value of nil means Emacs doesn't use toolkit scroll bars. With the X Window system, the value is a symbol describing the X toolkit. Possible values are: gtk, motif, xaw, or xaw3d. -With MS Windows, the value is t. With Nextstep, the value is -t or nil. */); +With MS Windows or Nextstep, the value is t. */); Vx_toolkit_scroll_bars = Qt; staticpro (&last_mouse_motion_frame); diff --git a/src/xterm.c b/src/xterm.c index 8fd0c0d24f7..0a54c987387 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -1,6 +1,6 @@ /* X Communication module for terminals which understand the X protocol. -Copyright (C) 1989, 1993-2012 Free Software Foundation, Inc. +Copyright (C) 1989, 1993-2012 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -10844,8 +10844,7 @@ selected window or cursor position is preserved. */); A value of nil means Emacs doesn't use toolkit scroll bars. With the X Window system, the value is a symbol describing the X toolkit. Possible values are: gtk, motif, xaw, or xaw3d. -With MS Windows, the value is t. With Nextstep, the value is -t or nil. */); +With MS Windows or Nextstep, the value is t. */); #ifdef USE_TOOLKIT_SCROLL_BARS #ifdef USE_MOTIF Vx_toolkit_scroll_bars = intern_c_string ("motif"); |