summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/emacs/ChangeLog4
-rw-r--r--doc/emacs/mark.texi11
-rw-r--r--doc/lispref/ChangeLog21
-rw-r--r--doc/lispref/display.texi34
-rw-r--r--doc/lispref/frames.texi15
-rw-r--r--doc/lispref/loading.texi19
-rw-r--r--doc/lispref/macros.texi4
-rw-r--r--doc/lispref/minibuf.texi25
-rw-r--r--doc/lispref/windows.texi10
-rw-r--r--etc/NEWS31
-rw-r--r--lisp/ChangeLog28
-rw-r--r--lisp/emacs-lisp/cl-lib.el2
-rw-r--r--lisp/emacs-lisp/syntax.el20
-rw-r--r--lisp/filecache.el4
-rw-r--r--lisp/image.el6
-rw-r--r--lisp/subr.el5
-rw-r--r--lisp/url/url-parse.el2
-rw-r--r--lisp/vc/vc-svn.el2
-rw-r--r--lisp/window.el53
-rw-r--r--src/ChangeLog22
-rw-r--r--src/nsterm.m9
-rw-r--r--src/unexelf.c2
-rw-r--r--src/w32select.c2
-rw-r--r--src/w32term.h15
24 files changed, 279 insertions, 67 deletions
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 9fad60d2a8c..dc5fa539cd1 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,7 @@
+2012-11-18 Dani Moncayo <dmoncayo@gmail.com>
+
+ * mark.texi (Disabled Transient Mark): Doc fixes (Bug#12746).
+
2012-11-16 Eli Zaretskii <eliz@gnu.org>
* trouble.texi (Crashing): Add information about MS-Windows and
diff --git a/doc/emacs/mark.texi b/doc/emacs/mark.texi
index 83d519a4cd2..db191eb175c 100644
--- a/doc/emacs/mark.texi
+++ b/doc/emacs/mark.texi
@@ -430,10 +430,6 @@ mark is by using @kbd{C-x C-x}, which exchanges the positions of the
point and the mark (@pxref{Setting Mark}).
@item
-Many commands that move point long distances, like @kbd{M-<} and
-@kbd{C-s}, first set the mark where point was.
-
-@item
Some commands, which ordinarily act on the region when the mark is
active, no longer do so. For example, normally @kbd{M-%}
(@code{query-replace}) performs replacements within the region, if the
@@ -455,9 +451,10 @@ command twice.)
@item C-u C-x C-x
@kindex C-u C-x C-x
-Activate the mark and enable Transient Mark mode temporarily, until
-the mark is next deactivated. (This is the @kbd{C-x C-x} command,
-@code{exchange-point-and-mark}, with a prefix argument.)
+Exchange point and mark, activate the mark and enable Transient Mark
+mode temporarily, until the mark is next deactivated. (This is the
+@kbd{C-x C-x} command, @code{exchange-point-and-mark}, with a prefix
+argument.)
@end table
These commands set or activate the mark, and enable Transient Mark
diff --git a/doc/lispref/ChangeLog b/doc/lispref/ChangeLog
index 8c1a863371b..a5295adc368 100644
--- a/doc/lispref/ChangeLog
+++ b/doc/lispref/ChangeLog
@@ -1,3 +1,24 @@
+2012-11-18 Glenn Morris <rgm@gnu.org>
+
+ * loading.texi (How Programs Do Loading): Add eager macro expansion.
+ * macros.texi (Expansion): Mention eager macro expansion.
+
+ * minibuf.texi (Basic Completion): Mention misc completion-table funcs.
+
+2012-11-18 Leo Liu <sdl.web@gmail.com>
+
+ * minibuf.texi (Programmed Completion): Doc fix for metadata
+ request (Bug#12850).
+
+2012-11-18 Glenn Morris <rgm@gnu.org>
+
+ * display.texi (Temporary Displays): Document with-temp-buffer-window.
+
+ * frames.texi (Size and Position): Add fit-frame-to-buffer command.
+ * windows.texi (Resizing Windows): Add fit-frame-to-buffer option.
+ (Window Sizes): Add vindex for window-min-height, window-min-width.
+ (Display Action Functions): Mention pop-up-frame-parameters.
+
2012-11-16 Martin Rudalics <rudalics@gmx.at>
* windows.texi (Choosing Window): Rewrite description of
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 9fedd162da6..475a9550f99 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -1078,7 +1078,8 @@ editing. Many help commands use this feature.
This function executes @var{forms} while arranging to insert any output
they print into the buffer named @var{buffer-name}, which is first
created if necessary, and put into Help mode. Finally, the buffer is
-displayed in some window, but not selected.
+displayed in some window, but not selected. (See the similar
+form @code{with-temp-buffer-window} below.)
If the @var{forms} do not change the major mode in the output buffer,
so that it is still Help mode at the end of their execution, then
@@ -1152,6 +1153,37 @@ displaying the temporary buffer. When the hook runs, the temporary buffer
is current, and the window it was displayed in is selected.
@end defvar
+@defmac with-temp-buffer-window buffer-or-name action quit-function forms@dots{}
+This macro is similar to @code{with-output-to-temp-buffer}.
+Like that construct, it executes @var{forms} while arranging to insert
+any output they print into the buffer named @var{buffer-or-name}.
+Finally, the buffer is displayed in some window, but not selected.
+Unlike @code{with-output-to-temp-buffer}, this does not switch to Help
+mode.
+
+The argument @var{buffer-or-name} specifies the temporary buffer.
+It can be either a buffer, which must already exist, or a string,
+in which case a buffer of that name is created if necessary.
+The buffer is marked as unmodified and read-only when
+@code{with-temp-buffer-window} exits.
+
+This macro does not call @code{temp-buffer-show-function}. Rather, it
+passes the @var{action} argument to @code{display-buffer} in order to
+display the buffer.
+
+The value of the last form in @var{forms} is returned, unless the
+argument @var{quit-function} is specified. In that case,
+it is called with two arguments: the window showing the buffer
+and the result of @var{forms}. The final return value is then
+whatever @var{quit-function} returns.
+
+@vindex temp-buffer-window-setup-hook
+@vindex temp-buffer-window-show-hook
+This macro uses the normal hooks @code{temp-buffer-window-setup-hook}
+and @code{temp-buffer-window-show-hook} in place of the analogous hooks
+run by @code{with-output-to-temp-buffer}.
+@end defmac
+
@defun momentary-string-display string position &optional char message
This function momentarily displays @var{string} in the current buffer at
@var{position}. It has no effect on the undo list or on the buffer's
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 27d55c4fdb9..846dfbaf17c 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1113,6 +1113,21 @@ The argument @var{pretend} has the same meaning as in
@code{set-frame-height}.
@end defun
+@c FIXME? Belongs more in Emacs manual than here?
+@c But eg fit-window-to-buffer is in this manual.
+@deffn Command fit-frame-to-buffer &optional frame max-height min-height
+This command adjusts the height of @var{frame} (the default is the
+selected frame) to fit its contents. The optional arguments
+@var{max-height} and @var{min-height} specify the maximum and minimum
+new frame heights, respectively.
+
+@vindex fit-frame-to-buffer-bottom-margin
+The default minimum height corresponds to @code{window-min-height}.
+The default maximum height is the screen height below the current top
+position of the frame, minus any margin specified by the option
+@code{fit-frame-to-buffer-bottom-margin}.
+@end deffn
+
@node Geometry
@subsection Geometry
diff --git a/doc/lispref/loading.texi b/doc/lispref/loading.texi
index 3a511d34829..54acd0b4d4c 100644
--- a/doc/lispref/loading.texi
+++ b/doc/lispref/loading.texi
@@ -113,6 +113,25 @@ When loading a source file (not compiled), @code{load} performs
character set translation just as Emacs would do when visiting the file.
@xref{Coding Systems}.
+@c This is referred to from the Macros chapter.
+@c Not sure if it should be the other way round.
+@cindex eager macro expansion
+When loading an uncompiled file, Emacs tries to expand any macros
+that the file contains (@pxref{Macros}). We refer to this as
+@dfn{eager macro expansion}. Doing this (rather than deferring
+the expansion until the relevant code runs) can significantly speed
+up the execution of uncompiled code. Sometimes, this macro expansion
+cannot be done, owing to a cyclic dependency. In the simplest
+example of this, the file you are loading refers to a macro defined
+in another file, and that file in turn requires the file you are
+loading. This is generally harmless. Emacs prints a warning
+(@samp{Eager macro-expansion skipped due to cycle@dots{}})
+giving details of the problem, but it still loads the file, just
+leaving the macro unexpanded for now. You may wish to restructure
+your code so that this does not happen. Loading a compiled file does
+not cause macroexpansion, because this should already have happened
+during compilation. @xref{Compiling Macros}.
+
Messages like @samp{Loading foo...} and @samp{Loading foo...done} appear
in the echo area during loading unless @var{nomessage} is
non-@code{nil}.
diff --git a/doc/lispref/macros.texi b/doc/lispref/macros.texi
index 8be6a3fbcde..b0dee1bf215 100644
--- a/doc/lispref/macros.texi
+++ b/doc/lispref/macros.texi
@@ -86,6 +86,10 @@ macro.
calls to other macros. It may even be a call to the same macro, though
this is unusual.
+ Note that Emacs tries to expand macros when loading an uncompiled
+Lisp file. This is not always possible, but if it is, it speeds up
+subsequent execution. @xref{How Programs Do Loading}.
+
You can see the expansion of a given macro call by calling
@code{macroexpand}.
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index 7243f46b882..033c10fbf7d 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -886,6 +886,26 @@ Here is an example:
@end smallexample
@end defmac
+@c FIXME? completion-table-with-context?
+@findex completion-table-case-fold
+@findex completion-table-in-turn
+@findex completion-table-subvert
+@findex completion-table-with-quoting
+@findex completion-table-with-predicate
+@findex completion-table-with-terminator
+@cindex completion table, modifying
+@cindex completion tables, combining
+There are several functions that take an existing completion table and
+return a modified version. @code{completion-table-case-fold} returns
+a case-insensitive table. @code{completion-table-in-turn} combines
+multiple input tables. @code{completion-table-subvert} alters a table
+to use a different initial prefix. @code{completion-table-with-quoting}
+returns a table suitable for operating on quoted text.
+@code{completion-table-with-predicate} filters a table with a
+predicate function. @code{completion-table-with-terminator} adds a
+terminating string.
+
+
@node Minibuffer Completion
@subsection Completion and the Minibuffer
@cindex minibuffer completion
@@ -1710,8 +1730,9 @@ string, and @var{end} is the position of the end boundary in
@item metadata
This specifies a request for information about the state of the
-current completion. The function should return an alist, as described
-below. The alist may contain any number of elements.
+current completion. The return value should have the form
+@code{(metadata . @var{alist})}, where @var{alist} is an alist whose
+elements are described below.
@end table
@noindent
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index efbfebc670f..b8581b1cc62 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -490,6 +490,8 @@ partially-visible line at the bottom of the text area is not counted.
aliases are considered obsolete and will be removed in the future.
@cindex fixed-size window
+@vindex window-min-height
+@vindex window-min-width
Commands that change the size of windows (@pxref{Resizing Windows}),
or split them (@pxref{Splitting Windows}), obey the variables
@code{window-min-height} and @code{window-min-width}, which specify
@@ -633,6 +635,10 @@ variable @code{window-min-height}.
If the optional argument @var{override} is non-@code{nil}, this
function ignores any size restrictions imposed by
@code{window-min-height} and @code{window-min-width}.
+
+@vindex fit-frame-to-buffer
+If the option @code{fit-frame-to-buffer} is non-@code{nil}, this
+command may resize the frame to fit its contents.
@end deffn
@deffn Command shrink-window-if-larger-than-buffer &optional window
@@ -1926,7 +1932,9 @@ entry (@pxref{Choosing Window Options}), raises that frame if necessary.
This function creates a new frame, and displays the buffer in that
frame's window. It actually performs the frame creation by calling
the function specified in @code{pop-up-frame-function}
-(@pxref{Choosing Window Options}).
+(@pxref{Choosing Window Options}). If @var{alist} contains a
+@code{pop-up-frame-parameters} entry, the associated value
+is added to the newly created frame's parameters.
@end defun
@defun display-buffer-pop-up-window buffer alist
diff --git a/etc/NEWS b/etc/NEWS
index 6fc0783936c..57e40982af6 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -858,15 +858,10 @@ More commands use `read-regexp' now to read their regexp arguments.
*** New function `completion-table-with-quoting' to handle completion
in the presence of quoting, such as file completion in shell buffers.
++++
*** New function `completion-table-subvert' to use an existing completion
table, but with a different prefix.
-FIXME?
-*** There are several other completion-table- functions that never got
-added to NEWS or documented: completion-table-case-fold (24.1),
-completion-table-with-context (23,1), completion-table-with-terminator (23.1),
-completion-table-with-predicate (23.1), completion-table-in-turn (23.1)
-
** Debugger changes
+++
@@ -892,14 +887,19 @@ now accept a third argument to avoid choosing the selected window.
+++
*** Additional values recognized for option `window-combination-limit'.
-*** New macro `with-temp-buffer-window'.
++++
+*** New macro `with-temp-buffer-window', similar to
+`with-output-to-temp-buffer'.
+---
*** `temp-buffer-resize-mode' no longer resizes windows that have been
reused.
++++
*** New command `fit-frame-to-buffer' adjusts the frame height to
fit the contents.
++++
*** The command `fit-window-to-buffer' can adjust the frame height
if the new option `fit-frame-to-buffer' is non-nil.
@@ -909,11 +909,11 @@ window's point when switching buffers.
+++
*** New display action functions `display-buffer-below-selected',
and `display-buffer-in-previous-window'.
-
++++
*** New display action alist entry `inhibit-switch-frame', if non-nil,
tells display action functions to avoid changing which frame is
selected.
-
++++
*** New display action alist entry `pop-up-frame-parameters', if
non-nil, specifies frame parameters to give any newly-created frame.
+++
@@ -969,13 +969,14 @@ Previously, they returned NaNs on some platforms but signaled errors
on others. The affected functions are acos, asin, tan, exp, expt,
log, log10, sqrt, and mod.
-** Interpreted files are eagerly macro-expanded during load.
++++
+** Emacs tries to macroexpand interpreted (non-compiled) files during load.
This can significantly speed up execution of non-byte-compiled code,
-but can also bump into harmless and previously unnoticed cyclic
-dependencies. These should not be fatal: they will simply cause the
-macro-calls to be left for later expansion (as before), but will also
-result in a warning ("Eager macro-expansion skipped due to cycle")
-describing the cycle.
+but can also bump into previously unnoticed cyclic dependencies.
+These are generally harmless: they will simply cause the macro calls
+to be left for later expansion (as before), but will result in a
+warning ("Eager macro-expansion skipped due to cycle") describing the cycle.
+You may wish to restructure your code so this does not happen.
** Miscellaneous new functions:
+++
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b1bd67fc47d..cd1cf014ef2 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,31 @@
+2012-11-18 Glenn Morris <rgm@gnu.org>
+
+ * image.el (insert-image, insert-sliced-image): Doc fix.
+
+2012-11-18 Chong Yidong <cyd@gnu.org>
+
+ * emacs-lisp/syntax.el (syntax-propertize-function): Doc fix
+ (Bug#12810).
+
+2012-11-18 OKAZAKI Tetsurou <okazaki.tetsurou@gmail.com> (tiny change)
+
+ * vc/vc-svn.el (vc-svn-merge-news): Properly parse the merge
+ response when the target file is in a subdirectory (Bug#12757).
+
+2012-11-18 Chong Yidong <cyd@gnu.org>
+
+ * filecache.el (file-cache-add-file-list): Doc fix (Bug#12694).
+
+2012-11-18 Glenn Morris <rgm@gnu.org>
+
+ * woman.el (woman-non-underline-faces):
+ * emacs-lisp/cl-lib.el (face-underline-p):
+ Use set-face-underline rather than the alias set-face-underline-p.
+
+ * window.el (with-temp-buffer-window): Doc fix.
+ * subr.el (with-output-to-temp-buffer):
+ Add doc xref to with-temp-buffer-window.
+
2012-11-18 Juanma Barranquero <lekktu@gmail.com>
* woman.el (woman-non-underline-faces): Use `set-face-underline'.
diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el
index bfc63134985..d5e5f4bbfbc 100644
--- a/lisp/emacs-lisp/cl-lib.el
+++ b/lisp/emacs-lisp/cl-lib.el
@@ -661,7 +661,7 @@ If ALIST is non-nil, the new pairs are prepended to it."
(gv-define-setter face-foreground (x f &optional s)
`(set-face-foreground ,f ,x ,s))
(gv-define-setter face-underline-p (x f &optional s)
- `(set-face-underline-p ,f ,x ,s))
+ `(set-face-underline ,f ,x ,s))
(gv-define-simple-setter file-modes set-file-modes t)
(gv-define-simple-setter frame-height set-screen-height t)
(gv-define-simple-setter frame-parameters modify-frame-parameters t)
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index c3d78b3444b..592cb1b0174 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -55,12 +55,18 @@
;; have to flush that cache between each function, and we couldn't use
;; syntax-ppss-flush-cache since that would not only flush the cache but also
;; reset syntax-propertize--done which should not be done in this case).
- "Mode-specific function to apply the syntax-table properties.
-Called with two arguments: START and END.
-This function can call `syntax-ppss' on any position before END, but it
-should not call `syntax-ppss-flush-cache', which means that it should not
-call `syntax-ppss' on some position and later modify the buffer on some
-earlier position.")
+ "Mode-specific function to apply `syntax-table' text properties.
+The value of this variable is a function to be called by Font
+Lock mode, prior to performing syntactic fontification on a
+stretch of text. It is given two arguments, START and END: the
+start and end of the text to be fontified. Major modes can
+specify a custom function to apply `syntax-table' properties to
+override the default syntax table in special cases.
+
+The specified function may call `syntax-ppss' on any position
+before END, but it should not call `syntax-ppss-flush-cache',
+which means that it should not call `syntax-ppss' on some
+position and later modify the buffer on some earlier position.")
(defvar syntax-propertize-chunk-size 500)
@@ -118,7 +124,7 @@ The arg RULES can be of the same form as in `syntax-propertize-rules'.
The return value is an object that can be passed as a rule to
`syntax-propertize-rules'.
I.e. this is useful only when you want to share rules among several
-syntax-propertize-functions."
+`syntax-propertize-function's."
(declare (debug syntax-propertize-rules))
;; Precompile? Yeah, right!
;; Seriously, tho, this is a macro for 2 reasons:
diff --git a/lisp/filecache.el b/lisp/filecache.el
index 23246c24c45..f868ef5e275 100644
--- a/lisp/filecache.el
+++ b/lisp/filecache.el
@@ -300,7 +300,9 @@ files in each directory, not to the directory list itself."
directory-list))
(defun file-cache-add-file-list (file-list)
- "Add FILE-LIST (a list of files names) to the file cache."
+ "Add FILE-LIST (a list of file names) to the file cache.
+Interactively, FILE-LIST is read as a Lisp expression, which
+should evaluate to the desired list of file names."
(interactive "XFile List: ")
(mapcar 'file-cache-add-file file-list))
diff --git a/lisp/image.el b/lisp/image.el
index bd2f5c3a3ca..27bbc2c08d6 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -429,7 +429,7 @@ means display it in the right marginal area."
"Insert IMAGE into current buffer at point.
IMAGE is displayed by inserting STRING into the current buffer
with a `display' property whose value is the image. STRING
-defaults to the empty string if you omit it.
+defaults to a single space if you omit it.
AREA is where to display the image. AREA nil or omitted means
display it in the text area, a value of `left-margin' means
display it in the left marginal area, a value of `right-margin'
@@ -467,8 +467,8 @@ height of the image; integer values are taken as pixel values."
(defun insert-sliced-image (image &optional string area rows cols)
"Insert IMAGE into current buffer at point.
IMAGE is displayed by inserting STRING into the current buffer
-with a `display' property whose value is the image. STRING is
-defaulted if you omit it.
+with a `display' property whose value is the image. The default
+STRING is a single space.
AREA is where to display the image. AREA nil or omitted means
display it in the text area, a value of `left-margin' means
display it in the left marginal area, a value of `right-margin'
diff --git a/lisp/subr.el b/lisp/subr.el
index 0745ee71eb8..8410897fd6f 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3189,6 +3189,7 @@ in which case `save-window-excursion' cannot help."
;; Return nil.
nil)
+;; Doc is very similar to with-temp-buffer-window.
(defmacro with-output-to-temp-buffer (bufname &rest body)
"Bind `standard-output' to buffer BUFNAME, eval BODY, then show that buffer.
@@ -3214,7 +3215,9 @@ with the buffer BUFNAME temporarily current. It runs the hook
`temp-buffer-show-hook' after displaying buffer BUFNAME, with that
buffer temporarily current, and the window that was used to display it
temporarily selected. But it doesn't run `temp-buffer-show-hook'
-if it uses `temp-buffer-show-function'."
+if it uses `temp-buffer-show-function'.
+
+See the related form `with-temp-buffer-window'."
(declare (debug t))
(let ((old-dir (make-symbol "old-dir"))
(buf (make-symbol "buf")))
diff --git a/lisp/url/url-parse.el b/lisp/url/url-parse.el
index cb61a021251..2efabed5cd8 100644
--- a/lisp/url/url-parse.el
+++ b/lisp/url/url-parse.el
@@ -48,7 +48,7 @@
(defun url-path-and-query (urlobj)
"Return the path and query components of URLOBJ.
-These two components are store together in the FILENAME slot of
+These two components are stored together in the FILENAME slot of
the object. The return value of this function is (PATH . QUERY),
where each of PATH and QUERY are strings or nil."
(let ((name (url-filename urlobj))
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index 3becd8950f1..370cd0a9dca 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -414,7 +414,7 @@ The changes are between FIRST-VERSION and SECOND-VERSION."
;; We also used to match the filename in column 0 without any
;; meta-info before it, but I believe this can never happen.
(concat "^\\(\\([ACGDU]\\)\\(.[B ]\\)? \\)"
- (regexp-quote (file-name-nondirectory file)))
+ (regexp-quote (file-relative-name file)))
nil t)
(cond
;; Merge successful, we are in sync with repository now
diff --git a/lisp/window.el b/lisp/window.el
index 9ac3a4ecda0..d378ea5ff14 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -142,41 +142,46 @@ to `display-buffer'."
;; Return the window.
window))))
+;; Doc is very similar to with-output-to-temp-buffer.
(defmacro with-temp-buffer-window (buffer-or-name action quit-function &rest body)
- "Evaluate BODY and display the buffer specified by BUFFER-OR-NAME.
+ "Bind `standard-output' to BUFFER-OR-NAME, eval BODY, show the buffer.
BUFFER-OR-NAME must specify either a live buffer, or the name of a
buffer (if it does not exist, this macro creates it).
-Make sure the specified buffer is empty before evaluating BODY.
-Do not make that buffer current for BODY. Instead, bind
-`standard-output' to that buffer, so that output generated with
-`prin1' and similar functions in BODY goes into that buffer.
+This construct makes buffer BUFFER-OR-NAME empty before running BODY.
+It does not make the buffer current for BODY.
+Instead it binds `standard-output' to that buffer, so that output
+generated with `prin1' and similar functions in BODY goes into
+the buffer.
-After evaluating BODY, this marks the specified buffer unmodified and
-read-only, and displays it in a window via `display-buffer', passing
-ACTION as the action argument to `display-buffer'. It automatically
-shrinks the relevant window if `temp-buffer-resize-mode' is enabled.
+At the end of BODY, this marks the specified buffer unmodified and
+read-only, and displays it in a window (but does not select it, or make
+the buffer current). The display happens by calling `display-buffer'
+with the ACTION argument. If `temp-buffer-resize-mode' is enabled,
+the relevant window shrinks automatically.
-Returns the value returned by BODY, unless QUIT-FUNCTION specifies
-a function. In that case, runs the function with two arguments -
+This returns the value returned by BODY, unless QUIT-FUNCTION specifies
+a function. In that case, it runs the function with two arguments -
the window showing the specified buffer and the value returned by
BODY - and returns the value returned by that function.
If the buffer is displayed on a new frame, the window manager may
decide to select that frame. In that case, it's usually a good
-strategy if the function specified by QUIT-FUNCTION selects the
-window showing the buffer before reading a value from the
-minibuffer; for example, when asking a `yes-or-no-p' question.
-
-This construct is similar to `with-output-to-temp-buffer', but does
-not put the buffer in help mode, or call `temp-buffer-show-function'.
-It also runs different hooks, namely `temp-buffer-window-setup-hook'
-\(with the specified buffer current) and `temp-buffer-window-show-hook'
-\(with the specified buffer current and the window showing it selected).
-
-Since this macro calls `display-buffer', the window displaying
-the buffer is usually not selected and the specified buffer
-usually not made current. QUIT-FUNCTION can override that."
+strategy if QUIT-FUNCTION selects the window showing the buffer
+before reading any value from the minibuffer; for example, when
+asking a `yes-or-no-p' question.
+
+This runs the hook `temp-buffer-window-setup-hook' before BODY,
+with the specified buffer temporarily current. It runs the
+hook `temp-buffer-window-show-hook' after displaying the buffer,
+with that buffer temporarily current, and the window that was used to
+display it temporarily selected.
+
+This construct is similar to `with-output-to-temp-buffer', but
+runs different hooks. In particular, it does not run
+`temp-buffer-setup-hook', which usually puts the buffer in Help mode.
+Also, it does not call `temp-buffer-show-function' (the ACTION
+argument replaces this)."
(declare (debug t))
(let ((buffer (make-symbol "buffer"))
(window (make-symbol "window"))
diff --git a/src/ChangeLog b/src/ChangeLog
index 752207a8d9a..b467a35de5f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,25 @@
+2012-11-18 Eli Zaretskii <eliz@gnu.org>
+
+ * w32select.c: Include w32common.h before w32term.h, so that
+ windows.h gets included before w32term.h uses some of its
+ features, see below.
+
+ * w32term.h (LOCALE_ENUMPROCA, LOCALE_ENUMPROCW) [_MSC_VER]: New
+ typedefs.
+ (EnumSystemLocalesA, EnumSystemLocalesW) [_MSC_VER]: New
+ prototypes.
+ (EnumSystemLocales) [_MSC_VER]: Define if undefined. (Bug#12878)
+
+2012-11-18 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (hold_event): Set send_appdefined to YES (Bug#12834).
+ (ns_select): Return at once if events are held (Bug#12834).
+
+2012-11-18 enami tsugutomo <tsugutomo.enami@jp.sony.com>
+
+ * unexelf.c (ELFSIZE) [__NetBSD__ && _LP64]: Set to 64.
+ Needed following 2012-10-20 change. (Bug#12902)
+
2012-11-18 Juanma Barranquero <lekktu@gmail.com>
* w32proc.c (waitpid): Remove unused label get_result.
diff --git a/src/nsterm.m b/src/nsterm.m
index 8773c6faf9f..2f400b95c58 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -330,6 +330,7 @@ hold_event (struct input_event *event)
hold_event_q.q[hold_event_q.nr++] = *event;
/* Make sure ns_read_socket is called, i.e. we have input. */
raise (SIGIO);
+ send_appdefined = YES;
}
static Lisp_Object
@@ -3461,6 +3462,14 @@ ns_select (int nfds, fd_set *readfds, fd_set *writefds,
/* NSTRACE (ns_select); */
+ if (hold_event_q.nr > 0)
+ {
+ /* We already have events pending. */
+ kill (0, SIGIO);
+ errno = EINTR;
+ return -1;
+ }
+
for (k = 0; k < nfds+1; k++)
{
if (readfds && FD_ISSET(k, readfds)) ++nr;
diff --git a/src/unexelf.c b/src/unexelf.c
index 121e6042fc9..b9f8e05e959 100644
--- a/src/unexelf.c
+++ b/src/unexelf.c
@@ -461,7 +461,7 @@ typedef struct {
/*
* NetBSD does not have normal-looking user-land ELF support.
*/
-# if defined __alpha__ || defined __sparc_v9__
+# if defined __alpha__ || defined __sparc_v9__ || defined _LP64
# define ELFSIZE 64
# else
# define ELFSIZE 32
diff --git a/src/w32select.c b/src/w32select.c
index 1b10c74cfe9..6a2a840f914 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -74,8 +74,8 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include "lisp.h"
-#include "w32term.h" /* for all of the w32 includes */
#include "w32common.h" /* os_subtype */
+#include "w32term.h" /* for all of the w32 includes */
#include "keyboard.h"
#include "blockinput.h"
#include "charset.h"
diff --git a/src/w32term.h b/src/w32term.h
index 72fb8a76e35..83535b8faa3 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -745,6 +745,21 @@ extern int w32_system_caret_height;
extern int w32_system_caret_x;
extern int w32_system_caret_y;
+#ifdef _MSC_VER
+#ifndef EnumSystemLocales
+/* MSVC headers define these only for _WIN32_WINNT >= 0x0500. */
+typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
+typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
+BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
+BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD)
+#ifdef UNICODE
+#define EnumSystemLocales EnumSystemLocalesW
+#else
+#define EnumSystemLocales EnumSystemLocalesA
+#endif
+#endif
+#endif
+
#if EMACSDEBUG
extern const char*
w32_name_of_message (UINT msg);