changeset 107909:de35fc0712bc

Merge from mainline.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Wed, 31 Mar 2010 21:53:49 +0000
parents 44e86aa9f6f9 (current diff) 6143a02fedce (diff)
children d9a02533def5
files
diffstat 6 files changed, 36 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/doc/lispref/ChangeLog	Wed Mar 31 06:31:33 2010 +0000
+++ b/doc/lispref/ChangeLog	Wed Mar 31 21:53:49 2010 +0000
@@ -1,3 +1,8 @@
+2010-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* control.texi (Handling Errors): How to re-throw a signal caught
+	by condition-case.
+
 2010-03-26  Chong Yidong  <cyd@stupidchicken.com>
 
 	* loading.texi (Hooks for Loading): Document after-load-functions.
--- a/doc/lispref/control.texi	Wed Mar 31 06:31:33 2010 +0000
+++ b/doc/lispref/control.texi	Wed Mar 31 21:53:49 2010 +0000
@@ -1023,6 +1023,20 @@
 
 If @var{var} is @code{nil}, that means no variable is bound.  Then the
 error symbol and associated data are not available to the handler.
+
+@cindex rethrow a signal
+Sometimes it is necessary to re-throw a signal caught by
+@code{condition-case}, for some outer-level handler to catch.  Here's
+how to do that:
+
+@smallexample
+  (signal (car err) (cdr err))
+@end smallexample
+
+@noindent
+where @code{err} is the error description variable, the first argument
+to @code{condition-case} whose error condition you want to re-throw.
+@xref{Definition of signal}.
 @end defspec
 
 @defun error-message-string error-description
@@ -1109,6 +1123,7 @@
 @end smallexample
 @end defmac
 
+
 @node Error Symbols
 @subsubsection Error Symbols and Condition Names
 @cindex error symbol
--- a/src/ChangeLog	Wed Mar 31 06:31:33 2010 +0000
+++ b/src/ChangeLog	Wed Mar 31 21:53:49 2010 +0000
@@ -1,3 +1,13 @@
+2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
+
+	* nsfns.m (ns_set_doc_edited): Remove unused arg OLDVAL.
+	* nsterm.h: Fix prototype.
+
+2010-03-31  Eli Zaretskii  <eliz@gnu.org>
+
+	* w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
+	in this function.  (Bug#5703)
+
 2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
 
 	* nsterm.h: Fix last change.
--- a/src/nsfns.m	Wed Mar 31 06:31:33 2010 +0000
+++ b/src/nsfns.m	Wed Mar 31 21:53:49 2010 +0000
@@ -686,7 +686,7 @@
 
 
 void
-ns_set_doc_edited (struct frame *f, Lisp_Object arg, Lisp_Object oldval)
+ns_set_doc_edited (struct frame *f, Lisp_Object arg)
 {
   NSView *view = FRAME_NS_VIEW (f);
   NSAutoreleasePool *pool;
--- a/src/nsterm.h	Wed Mar 31 06:31:33 2010 +0000
+++ b/src/nsterm.h	Wed Mar 31 21:53:49 2010 +0000
@@ -709,7 +709,7 @@
 extern Lisp_Object ns_cursor_type_to_lisp (int arg);
 extern Lisp_Object Qnone;
 extern void ns_set_name_as_filename (struct frame *f);
-extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg, Lisp_Object oldval);
+extern void ns_set_doc_edited (struct frame *f, Lisp_Object arg);
 
 extern int
 ns_defined_color (struct frame *f, char *name, XColor *color_def, int alloc,
--- a/src/w32fns.c	Wed Mar 31 06:31:33 2010 +0000
+++ b/src/w32fns.c	Wed Mar 31 21:53:49 2010 +0000
@@ -5427,6 +5427,10 @@
 
   kb = dpyinfo->terminal->kboard;
 
+  /* The calls to x_get_arg remove elements from PARMS, so copy it to
+     avoid destructive changes behind our caller's back.  */
+  parms = Fcopy_alist (parms);
+
   /* Get the name of the frame to use for resource lookup.  */
   name = x_get_arg (dpyinfo, parms, Qname, "name", "Name", RES_TYPE_STRING);
   if (!STRINGP (name)