aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEli Zaretskii2017-09-29 10:02:33 +0300
committerEli Zaretskii2017-09-29 10:02:33 +0300
commitc1ac8c170f17a98b7e5d6e098f707daeb71ea27d (patch)
treedffdc5f4a509ec200b69c09f52b979f42d31e10b /src
parent18073beb14f393b4bbcc92890a89dcfcb75fb7ac (diff)
parentaf130f900fc499f71ea22f10ba055a75ce35ed4e (diff)
downloademacs-c1ac8c170f17a98b7e5d6e098f707daeb71ea27d.tar.gz
emacs-c1ac8c170f17a98b7e5d6e098f707daeb71ea27d.zip
Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emacs into emacs-26
Diffstat (limited to 'src')
-rw-r--r--src/callint.c7
-rw-r--r--src/dbusbind.c3
-rw-r--r--src/editfns.c46
-rw-r--r--src/gtkutil.c5
-rw-r--r--src/lisp.h1
-rw-r--r--src/nsterm.m28
-rw-r--r--src/w32term.c6
-rw-r--r--src/xdisp.c4
8 files changed, 65 insertions, 35 deletions
diff --git a/src/callint.c b/src/callint.c
index 105ec071d07..469205cc380 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -272,7 +272,7 @@ invoke it. If KEYS is omitted or nil, the return value of
272{ 272{
273 /* `args' will contain the array of arguments to pass to the function. 273 /* `args' will contain the array of arguments to pass to the function.
274 `visargs' will contain the same list but in a nicer form, so that if we 274 `visargs' will contain the same list but in a nicer form, so that if we
275 pass it to `Fformat_message' it will be understandable to a human. */ 275 pass it to styled_format it will be understandable to a human. */
276 Lisp_Object *args, *visargs; 276 Lisp_Object *args, *visargs;
277 Lisp_Object specs; 277 Lisp_Object specs;
278 Lisp_Object filter_specs; 278 Lisp_Object filter_specs;
@@ -502,10 +502,7 @@ invoke it. If KEYS is omitted or nil, the return value of
502 for (i = 2; *tem; i++) 502 for (i = 2; *tem; i++)
503 { 503 {
504 visargs[1] = make_string (tem + 1, strcspn (tem + 1, "\n")); 504 visargs[1] = make_string (tem + 1, strcspn (tem + 1, "\n"));
505 if (strchr (SSDATA (visargs[1]), '%')) 505 callint_message = styled_format (i - 1, visargs + 1, true, false);
506 callint_message = Fformat_message (i - 1, visargs + 1);
507 else
508 callint_message = visargs[1];
509 506
510 switch (*tem) 507 switch (*tem)
511 { 508 {
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 4a7068416fe..789aa008611 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -237,7 +237,8 @@ static char *
237XD_OBJECT_TO_STRING (Lisp_Object object) 237XD_OBJECT_TO_STRING (Lisp_Object object)
238{ 238{
239 AUTO_STRING (format, "%s"); 239 AUTO_STRING (format, "%s");
240 return SSDATA (CALLN (Fformat, format, object)); 240 Lisp_Object args[] = { format, object };
241 return SSDATA (styled_format (ARRAYELTS (args), args, false, false));
241} 242}
242 243
243#define XD_DBUS_VALIDATE_BUS_ADDRESS(bus) \ 244#define XD_DBUS_VALIDATE_BUS_ADDRESS(bus) \
diff --git a/src/editfns.c b/src/editfns.c
index 2f8b075817a..e326604467c 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -74,7 +74,6 @@ static Lisp_Object format_time_string (char const *, ptrdiff_t, struct timespec,
74static long int tm_gmtoff (struct tm *); 74static long int tm_gmtoff (struct tm *);
75static int tm_diff (struct tm *, struct tm *); 75static int tm_diff (struct tm *, struct tm *);
76static void update_buffer_properties (ptrdiff_t, ptrdiff_t); 76static void update_buffer_properties (ptrdiff_t, ptrdiff_t);
77static Lisp_Object styled_format (ptrdiff_t, Lisp_Object *, bool);
78 77
79#ifndef HAVE_TM_GMTOFF 78#ifndef HAVE_TM_GMTOFF
80# define HAVE_TM_GMTOFF false 79# define HAVE_TM_GMTOFF false
@@ -3959,7 +3958,7 @@ usage: (message FORMAT-STRING &rest ARGS) */)
3959 } 3958 }
3960 else 3959 else
3961 { 3960 {
3962 Lisp_Object val = Fformat_message (nargs, args); 3961 Lisp_Object val = styled_format (nargs, args, true, false);
3963 message3 (val); 3962 message3 (val);
3964 return val; 3963 return val;
3965 } 3964 }
@@ -3985,7 +3984,7 @@ usage: (message-box FORMAT-STRING &rest ARGS) */)
3985 } 3984 }
3986 else 3985 else
3987 { 3986 {
3988 Lisp_Object val = Fformat_message (nargs, args); 3987 Lisp_Object val = styled_format (nargs, args, true, false);
3989 Lisp_Object pane, menu; 3988 Lisp_Object pane, menu;
3990 3989
3991 pane = list1 (Fcons (build_string ("OK"), Qt)); 3990 pane = list1 (Fcons (build_string ("OK"), Qt));
@@ -4141,7 +4140,7 @@ produced text.
4141usage: (format STRING &rest OBJECTS) */) 4140usage: (format STRING &rest OBJECTS) */)
4142 (ptrdiff_t nargs, Lisp_Object *args) 4141 (ptrdiff_t nargs, Lisp_Object *args)
4143{ 4142{
4144 return styled_format (nargs, args, false); 4143 return styled_format (nargs, args, false, true);
4145} 4144}
4146 4145
4147DEFUN ("format-message", Fformat_message, Sformat_message, 1, MANY, 0, 4146DEFUN ("format-message", Fformat_message, Sformat_message, 1, MANY, 0,
@@ -4157,13 +4156,16 @@ and right quote replacement characters are specified by
4157usage: (format-message STRING &rest OBJECTS) */) 4156usage: (format-message STRING &rest OBJECTS) */)
4158 (ptrdiff_t nargs, Lisp_Object *args) 4157 (ptrdiff_t nargs, Lisp_Object *args)
4159{ 4158{
4160 return styled_format (nargs, args, true); 4159 return styled_format (nargs, args, true, true);
4161} 4160}
4162 4161
4163/* Implement ‘format-message’ if MESSAGE is true, ‘format’ otherwise. */ 4162/* Implement ‘format-message’ if MESSAGE is true, ‘format’ otherwise.
4163 If NEW_RESULT, the result is a new string; otherwise, the result
4164 may be one of the arguments. */
4164 4165
4165static Lisp_Object 4166Lisp_Object
4166styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message) 4167styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message,
4168 bool new_result)
4167{ 4169{
4168 ptrdiff_t n; /* The number of the next arg to substitute. */ 4170 ptrdiff_t n; /* The number of the next arg to substitute. */
4169 char initial_buffer[4000]; 4171 char initial_buffer[4000];
@@ -4193,6 +4195,9 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4193 /* The start and end bytepos in the output string. */ 4195 /* The start and end bytepos in the output string. */
4194 ptrdiff_t start, end; 4196 ptrdiff_t start, end;
4195 4197
4198 /* Whether the argument is a newly created string. */
4199 bool_bf new_string : 1;
4200
4196 /* Whether the argument is a string with intervals. */ 4201 /* Whether the argument is a string with intervals. */
4197 bool_bf intervals : 1; 4202 bool_bf intervals : 1;
4198 } *info; 4203 } *info;
@@ -4342,7 +4347,10 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4342 memset (&discarded[format0 - format_start], 1, 4347 memset (&discarded[format0 - format_start], 1,
4343 format - format0 - (conversion == '%')); 4348 format - format0 - (conversion == '%'));
4344 if (conversion == '%') 4349 if (conversion == '%')
4345 goto copy_char; 4350 {
4351 new_result = true;
4352 goto copy_char;
4353 }
4346 4354
4347 ++n; 4355 ++n;
4348 if (! (n < nargs)) 4356 if (! (n < nargs))
@@ -4352,6 +4360,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4352 if (nspec < ispec) 4360 if (nspec < ispec)
4353 { 4361 {
4354 spec->argument = args[n]; 4362 spec->argument = args[n];
4363 spec->new_string = false;
4355 spec->intervals = false; 4364 spec->intervals = false;
4356 nspec = ispec; 4365 nspec = ispec;
4357 } 4366 }
@@ -4369,6 +4378,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4369 { 4378 {
4370 Lisp_Object noescape = conversion == 'S' ? Qnil : Qt; 4379 Lisp_Object noescape = conversion == 'S' ? Qnil : Qt;
4371 spec->argument = arg = Fprin1_to_string (arg, noescape); 4380 spec->argument = arg = Fprin1_to_string (arg, noescape);
4381 spec->new_string = true;
4372 if (STRING_MULTIBYTE (arg) && ! multibyte) 4382 if (STRING_MULTIBYTE (arg) && ! multibyte)
4373 { 4383 {
4374 multibyte = true; 4384 multibyte = true;
@@ -4387,6 +4397,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4387 goto retry; 4397 goto retry;
4388 } 4398 }
4389 spec->argument = arg = Fchar_to_string (arg); 4399 spec->argument = arg = Fchar_to_string (arg);
4400 spec->new_string = true;
4390 } 4401 }
4391 4402
4392 if (!EQ (arg, args[n])) 4403 if (!EQ (arg, args[n]))
@@ -4409,6 +4420,11 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4409 4420
4410 if (conversion == 's') 4421 if (conversion == 's')
4411 { 4422 {
4423 if (format == end && format - format_start == 2
4424 && (!new_result || spec->new_string)
4425 && ! string_intervals (args[0]))
4426 return arg;
4427
4412 /* handle case (precision[n] >= 0) */ 4428 /* handle case (precision[n] >= 0) */
4413 4429
4414 ptrdiff_t prec = -1; 4430 ptrdiff_t prec = -1;
@@ -4487,6 +4503,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4487 if (string_intervals (arg)) 4503 if (string_intervals (arg))
4488 spec->intervals = arg_intervals = true; 4504 spec->intervals = arg_intervals = true;
4489 4505
4506 new_result = true;
4490 continue; 4507 continue;
4491 } 4508 }
4492 } 4509 }
@@ -4754,6 +4771,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4754 } 4771 }
4755 spec->end = nchars; 4772 spec->end = nchars;
4756 4773
4774 new_result = true;
4757 continue; 4775 continue;
4758 } 4776 }
4759 } 4777 }
@@ -4772,9 +4790,13 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4772 } 4790 }
4773 convsrc = format_char == '`' ? uLSQM : uRSQM; 4791 convsrc = format_char == '`' ? uLSQM : uRSQM;
4774 convbytes = 3; 4792 convbytes = 3;
4793 new_result = true;
4775 } 4794 }
4776 else if (format_char == '`' && quoting_style == STRAIGHT_QUOTING_STYLE) 4795 else if (format_char == '`' && quoting_style == STRAIGHT_QUOTING_STYLE)
4777 convsrc = "'"; 4796 {
4797 convsrc = "'";
4798 new_result = true;
4799 }
4778 else 4800 else
4779 { 4801 {
4780 /* Copy a single character from format to buf. */ 4802 /* Copy a single character from format to buf. */
@@ -4798,6 +4820,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4798 int c = BYTE8_TO_CHAR (format_char); 4820 int c = BYTE8_TO_CHAR (format_char);
4799 convbytes = CHAR_STRING (c, str); 4821 convbytes = CHAR_STRING (c, str);
4800 convsrc = (char *) str; 4822 convsrc = (char *) str;
4823 new_result = true;
4801 } 4824 }
4802 } 4825 }
4803 4826
@@ -4844,6 +4867,9 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
4844 if (bufsize < p - buf) 4867 if (bufsize < p - buf)
4845 emacs_abort (); 4868 emacs_abort ();
4846 4869
4870 if (! new_result)
4871 return args[0];
4872
4847 if (maybe_combine_byte) 4873 if (maybe_combine_byte)
4848 nchars = multibyte_chars_in_text ((unsigned char *) buf, p - buf); 4874 nchars = multibyte_chars_in_text ((unsigned char *) buf, p - buf);
4849 Lisp_Object val = make_specified_string (buf, nchars, p - buf, multibyte); 4875 Lisp_Object val = make_specified_string (buf, nchars, p - buf, multibyte);
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 0203a5d5c1a..0da70399193 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -1217,7 +1217,10 @@ xg_create_frame_widgets (struct frame *f)
1217 with regular X drawing primitives, so from a GTK/GDK point of 1217 with regular X drawing primitives, so from a GTK/GDK point of
1218 view, the widget is totally blank. When an expose comes, this 1218 view, the widget is totally blank. When an expose comes, this
1219 will make the widget blank, and then Emacs redraws it. This flickers 1219 will make the widget blank, and then Emacs redraws it. This flickers
1220 a lot, so we turn off double buffering. */ 1220 a lot, so we turn off double buffering.
1221 FIXME: gtk_widget_set_double_buffered is deprecated and might stop
1222 working in the future. We need to migrate away from combining
1223 X and GTK+ drawing to a pure GTK+ build. */
1221 gtk_widget_set_double_buffered (wfixed, FALSE); 1224 gtk_widget_set_double_buffered (wfixed, FALSE);
1222 1225
1223 gtk_window_set_wmclass (GTK_WINDOW (wtop), 1226 gtk_window_set_wmclass (GTK_WINDOW (wtop),
diff --git a/src/lisp.h b/src/lisp.h
index c5030824427..0c3ca3ae06b 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -3969,6 +3969,7 @@ extern _Noreturn void time_overflow (void);
3969extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, bool); 3969extern Lisp_Object make_buffer_string (ptrdiff_t, ptrdiff_t, bool);
3970extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t, 3970extern Lisp_Object make_buffer_string_both (ptrdiff_t, ptrdiff_t, ptrdiff_t,
3971 ptrdiff_t, bool); 3971 ptrdiff_t, bool);
3972extern Lisp_Object styled_format (ptrdiff_t, Lisp_Object *, bool, bool);
3972extern void init_editfns (bool); 3973extern void init_editfns (bool);
3973extern void syms_of_editfns (void); 3974extern void syms_of_editfns (void);
3974 3975
diff --git a/src/nsterm.m b/src/nsterm.m
index fb3ebc963e7..f0b6a70dae3 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -6520,7 +6520,7 @@ not_in_argv (NSString *arg)
6520 6520
6521 /* FIXME: At the top or bottom of the buffer we should 6521 /* FIXME: At the top or bottom of the buffer we should
6522 * ignore momentum-phase events. */ 6522 * ignore momentum-phase events. */
6523 if (! ns_touchpad_use_momentum 6523 if (! ns_use_mwheel_momentum
6524 && [theEvent momentumPhase] != NSEventPhaseNone) 6524 && [theEvent momentumPhase] != NSEventPhaseNone)
6525 return; 6525 return;
6526 6526
@@ -6529,8 +6529,8 @@ not_in_argv (NSString *arg)
6529 static int totalDeltaX, totalDeltaY; 6529 static int totalDeltaX, totalDeltaY;
6530 int lineHeight; 6530 int lineHeight;
6531 6531
6532 if (NUMBERP (ns_touchpad_scroll_line_height)) 6532 if (NUMBERP (ns_mwheel_line_height))
6533 lineHeight = XINT (ns_touchpad_scroll_line_height); 6533 lineHeight = XINT (ns_mwheel_line_height);
6534 else 6534 else
6535 { 6535 {
6536 /* FIXME: Use actual line height instead of the default. */ 6536 /* FIXME: Use actual line height instead of the default. */
@@ -6571,7 +6571,7 @@ not_in_argv (NSString *arg)
6571 totalDeltaX = 0; 6571 totalDeltaX = 0;
6572 } 6572 }
6573 6573
6574 if (lines > 1 && ! ns_use_system_mwheel_acceleration) 6574 if (lines > 1 && ! ns_use_mwheel_acceleration)
6575 lines = 1; 6575 lines = 1;
6576 } 6576 }
6577 else 6577 else
@@ -6589,7 +6589,7 @@ not_in_argv (NSString *arg)
6589 delta = [theEvent scrollingDeltaY]; 6589 delta = [theEvent scrollingDeltaY];
6590 } 6590 }
6591 6591
6592 lines = (ns_use_system_mwheel_acceleration) 6592 lines = (ns_use_mwheel_acceleration)
6593 ? ceil (fabs (delta)) : 1; 6593 ? ceil (fabs (delta)) : 1;
6594 6594
6595 scrollUp = delta > 0; 6595 scrollUp = delta > 0;
@@ -9284,22 +9284,22 @@ Note that this does not apply to images.
9284This variable is ignored on Mac OS X < 10.7 and GNUstep. */); 9284This variable is ignored on Mac OS X < 10.7 and GNUstep. */);
9285 ns_use_srgb_colorspace = YES; 9285 ns_use_srgb_colorspace = YES;
9286 9286
9287 DEFVAR_BOOL ("ns-use-system-mwheel-acceleration", 9287 DEFVAR_BOOL ("ns-use-mwheel-acceleration",
9288 ns_use_system_mwheel_acceleration, 9288 ns_use_mwheel_acceleration,
9289 doc: /*Non-nil means use macOS's standard mouse wheel acceleration. 9289 doc: /*Non-nil means use macOS's standard mouse wheel acceleration.
9290This variable is ignored on macOS < 10.7 and GNUstep. Default is t. */); 9290This variable is ignored on macOS < 10.7 and GNUstep. Default is t. */);
9291 ns_use_system_mwheel_acceleration = YES; 9291 ns_use_mwheel_acceleration = YES;
9292 9292
9293 DEFVAR_LISP ("ns-touchpad-scroll-line-height", ns_touchpad_scroll_line_height, 9293 DEFVAR_LISP ("ns-mwheel-line-height", ns_mwheel_line_height,
9294 doc: /*The number of pixels touchpad scrolling considers a line. 9294 doc: /*The number of pixels touchpad scrolling considers one line.
9295Nil or a non-number means use the default frame line height. 9295Nil or a non-number means use the default frame line height.
9296This variable is ignored on macOS < 10.7 and GNUstep. Default is nil. */); 9296This variable is ignored on macOS < 10.7 and GNUstep. Default is nil. */);
9297 ns_touchpad_scroll_line_height = Qnil; 9297 ns_mwheel_line_height = Qnil;
9298 9298
9299 DEFVAR_BOOL ("ns-touchpad-use-momentum", ns_touchpad_use_momentum, 9299 DEFVAR_BOOL ("ns-use-mwheel-momentum", ns_use_mwheel_momentum,
9300 doc: /*Non-nil means touchpad scrolling uses momentum. 9300 doc: /*Non-nil means mouse wheel scrolling uses momentum.
9301This variable is ignored on macOS < 10.7 and GNUstep. Default is t. */); 9301This variable is ignored on macOS < 10.7 and GNUstep. Default is t. */);
9302 ns_touchpad_use_momentum = YES; 9302 ns_use_mwheel_momentum = YES;
9303 9303
9304 /* TODO: move to common code */ 9304 /* TODO: move to common code */
9305 DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars, 9305 DEFVAR_LISP ("x-toolkit-scroll-bars", Vx_toolkit_scroll_bars,
diff --git a/src/w32term.c b/src/w32term.c
index a7a510b9ecb..d7ec40118f3 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -6252,7 +6252,8 @@ w32fullscreen_hook (struct frame *f)
6252 6252
6253 if (FRAME_PREV_FSMODE (f) == FULLSCREEN_BOTH) 6253 if (FRAME_PREV_FSMODE (f) == FULLSCREEN_BOTH)
6254 { 6254 {
6255 SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_OVERLAPPEDWINDOW); 6255 if (!FRAME_UNDECORATED (f))
6256 SetWindowLong (hwnd, GWL_STYLE, dwStyle | WS_OVERLAPPEDWINDOW);
6256 SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f)); 6257 SetWindowPlacement (hwnd, &FRAME_NORMAL_PLACEMENT (f));
6257 } 6258 }
6258 else if (FRAME_PREV_FSMODE (f) == FULLSCREEN_HEIGHT 6259 else if (FRAME_PREV_FSMODE (f) == FULLSCREEN_HEIGHT
@@ -6278,7 +6279,8 @@ w32fullscreen_hook (struct frame *f)
6278 6279
6279 w32_fullscreen_rect (hwnd, f->want_fullscreen, 6280 w32_fullscreen_rect (hwnd, f->want_fullscreen,
6280 FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect); 6281 FRAME_NORMAL_PLACEMENT (f).rcNormalPosition, &rect);
6281 SetWindowLong (hwnd, GWL_STYLE, dwStyle & ~WS_OVERLAPPEDWINDOW); 6282 if (!FRAME_UNDECORATED (f))
6283 SetWindowLong (hwnd, GWL_STYLE, dwStyle & ~WS_OVERLAPPEDWINDOW);
6282 SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top, 6284 SetWindowPos (hwnd, HWND_TOP, rect.left, rect.top,
6283 rect.right - rect.left, rect.bottom - rect.top, 6285 rect.right - rect.left, rect.bottom - rect.top,
6284 SWP_NOOWNERZORDER | SWP_FRAMECHANGED); 6286 SWP_NOOWNERZORDER | SWP_FRAMECHANGED);
diff --git a/src/xdisp.c b/src/xdisp.c
index 141275f15a0..86164eb9f6f 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -10194,7 +10194,7 @@ vadd_to_log (char const *format, va_list ap)
10194 for (ptrdiff_t i = 1; i <= nargs; i++) 10194 for (ptrdiff_t i = 1; i <= nargs; i++)
10195 args[i] = va_arg (ap, Lisp_Object); 10195 args[i] = va_arg (ap, Lisp_Object);
10196 Lisp_Object msg = Qnil; 10196 Lisp_Object msg = Qnil;
10197 msg = Fformat_message (nargs, args); 10197 msg = styled_format (nargs, args, true, false);
10198 10198
10199 ptrdiff_t len = SBYTES (msg) + 1; 10199 ptrdiff_t len = SBYTES (msg) + 1;
10200 USE_SAFE_ALLOCA; 10200 USE_SAFE_ALLOCA;
@@ -19525,7 +19525,7 @@ DEFUN ("trace-to-stderr", Ftrace_to_stderr, Strace_to_stderr, 1, MANY, "",
19525usage: (trace-to-stderr STRING &rest OBJECTS) */) 19525usage: (trace-to-stderr STRING &rest OBJECTS) */)
19526 (ptrdiff_t nargs, Lisp_Object *args) 19526 (ptrdiff_t nargs, Lisp_Object *args)
19527{ 19527{
19528 Lisp_Object s = Fformat (nargs, args); 19528 Lisp_Object s = styled_format (nargs, args, false, false);
19529 fwrite (SDATA (s), 1, SBYTES (s), stderr); 19529 fwrite (SDATA (s), 1, SBYTES (s), stderr);
19530 return Qnil; 19530 return Qnil;
19531} 19531}