diff src/print.c @ 167:85ec50267440 r20-3b10

Import from CVS: tag r20-3b10
author cvs
date Mon, 13 Aug 2007 09:45:46 +0200
parents 538048ae2ab8
children 929b76928fce
line wrap: on
line diff
--- a/src/print.c	Mon Aug 13 09:44:44 2007 +0200
+++ b/src/print.c	Mon Aug 13 09:45:46 2007 +0200
@@ -597,22 +597,20 @@
 DEFUN ("error-message-string", Ferror_message_string, 1, 1, 0, /*
 Convert an error value (ERROR-SYMBOL . DATA) to an error message.
 */
-  (obj))
+  (data))
 {
-  struct buffer *old = XBUFFER(Fcurrent_buffer());
+  struct buffer *pbuf;
   Lisp_Object original, printcharfun, value;
   struct gcpro gcpro1;
 
-  print_error_message (obj, Vprin1_to_string_buffer);
+  print_error_message (data, Vprin1_to_string_buffer);
 
-  set_buffer_internal (XBUFFER (Vprin1_to_string_buffer));
-  value = Fbuffer_substring (Fpoint_min(Fcurrent_buffer()),
-			     Fpoint_max(Fcurrent_buffer()),
-			     Fcurrent_buffer());
-
+  pbuf = XBUFFER (Vprin1_to_string_buffer);
+  value = make_string_from_buffer (pbuf,
+				   BUF_BEGV (pbuf),
+				   BUF_ZV (pbuf) - BUF_BEGV (pbuf));
   GCPRO1 (value);
-  Ferase_buffer (Fcurrent_buffer());
-  set_buffer_internal (old);
+  Ferase_buffer (Vprin1_to_string_buffer);
   UNGCPRO;
 
   return value;