[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#31376: 26.0.50; print-charset-text-property not honored
From: |
Noam Postavsky |
Subject: |
bug#31376: 26.0.50; print-charset-text-property not honored |
Date: |
Sat, 12 May 2018 16:02:01 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
tags 31376 + patch
quit
Eli Zaretskii <eliz@gnu.org> writes:
>> As far as I can tell, setting to 'default' just makes Emacs do
>> pointless extra checking for "unsafe" charsets even after it has
>> found one.
>
> You mean, setting it to nil makes it do pointless extra work, yes? ;-)
Hah! I guess I really can't tell the difference :)
> Yes, that sounds right, thanks. We should also mention in the doc
> string that any non-nil, non-t value is treated as 'default'.
> And this variable should be mentioned in the ELisp manual, in the node
> "Output Variables".
Okay, how about this:
>From eed29c8e7164cbc13df4d7b4e3974ae90d9ecb51 Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs@gmail.com>
Date: Fri, 11 May 2018 13:44:46 -0400
Subject: [PATCH] Honor print-charset-text-property value of nil (Bug#31376)
* src/print.c (print_check_string_charset_prop): Move check
for nil Vprint_charset_text_property from here...
(print_prune_string_charset): ... to here.
(syms_of_print) <print-charset-text-property>: Clarify that any
non-boolean values are treated the same as `default'.
* doc/lispref/streams.texi (Output Variables): Add
print-prune-string-charset.
---
doc/lispref/streams.texi | 13 +++++++++++++
src/print.c | 11 ++++++-----
2 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index ebd806601e..ae3b982080 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -809,6 +809,19 @@ Output Variables
one.
@end defvar
+@defvar print-charset-text-property
+This variable controls printing of `charset' text property on printing
+a string. The value should be @code{nil}, @code{t}, or
+@code{default}.
+
+If the value is @code{nil}, @code{charset} text properties are never
+printed. If @code{t}, they are always printed. If the value is
+@code{default}, print the text property @code{charset} only when the
+value is different from what is guessed in the current charset
+priorities. Values other than @code{nil} or @code{t} are treated the
+same as @code{default}.
+@end defvar
+
@defvar print-length
@cindex printing limits
The value of this variable is the maximum number of elements to print in
diff --git a/src/print.c b/src/print.c
index 15177759cf..427ab7d158 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1317,8 +1317,7 @@ print_check_string_charset_prop (INTERVAL interval,
Lisp_Object string)
|| CONSP (XCDR (XCDR (val))))
print_check_string_result |= PRINT_STRING_NON_CHARSET_FOUND;
}
- if (NILP (Vprint_charset_text_property)
- || ! (print_check_string_result & PRINT_STRING_UNSAFE_CHARSET_FOUND))
+ if (! (print_check_string_result & PRINT_STRING_UNSAFE_CHARSET_FOUND))
{
int i, c;
ptrdiff_t charpos = interval->position;
@@ -1348,7 +1347,8 @@ print_prune_string_charset (Lisp_Object string)
print_check_string_result = 0;
traverse_intervals (string_intervals (string), 0,
print_check_string_charset_prop, string);
- if (! (print_check_string_result & PRINT_STRING_UNSAFE_CHARSET_FOUND))
+ if (NILP (Vprint_charset_text_property)
+ || ! (print_check_string_result & PRINT_STRING_UNSAFE_CHARSET_FOUND))
{
string = Fcopy_sequence (string);
if (print_check_string_result & PRINT_STRING_NON_CHARSET_FOUND)
@@ -2422,7 +2422,7 @@ representation) and `#N#' in place of each subsequent
occurrence,
DEFVAR_LISP ("print-charset-text-property", Vprint_charset_text_property,
doc: /* A flag to control printing of `charset' text property on
printing a string.
-The value must be nil, t, or `default'.
+The value should be nil, t, or `default'.
If the value is nil, don't print the text property `charset'.
@@ -2430,7 +2430,8 @@ representation) and `#N#' in place of each subsequent
occurrence,
If the value is `default', print the text property `charset' only when
the value is different from what is guessed in the current charset
-priorities. */);
+priorities. Values other than nil or t are also treated as
+`default'. */);
Vprint_charset_text_property = Qdefault;
/* prin1_to_string_buffer initialized in init_buffer_once in buffer.c */
--
2.11.0
- bug#31376: 26.0.50; print-charset-text-property not honored, Helmut Eller, 2018/05/07
- bug#31376: 26.0.50; print-charset-text-property not honored, Andreas Schwab, 2018/05/07
- bug#31376: 26.0.50; print-charset-text-property not honored, Helmut Eller, 2018/05/07
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/07
- bug#31376: 26.0.50; print-charset-text-property not honored, Helmut Eller, 2018/05/07
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/11
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/11
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/11
- bug#31376: 26.0.50; print-charset-text-property not honored, Drew Adams, 2018/05/11
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/12
- bug#31376: 26.0.50; print-charset-text-property not honored,
Noam Postavsky <=
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/13
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/13
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/13
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/13
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/14
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/14
- bug#31376: 26.0.50; print-charset-text-property not honored, Eli Zaretskii, 2018/05/15
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/15
- bug#31376: 26.0.50; print-charset-text-property not honored, Noam Postavsky, 2018/05/23