From: Juri Linkov <juri@linkov.net>
To: Eli Zaretskii <eliz@gnu.org>
Cc: rpluim@gmail.com, 43866@debbugs.gnu.org
Subject: bug#43866: 26.3; italian postfix additions
Date: Wed, 21 Oct 2020 22:39:08 +0300 [thread overview]
Message-ID: <87h7qn1i8z.fsf@mail.linkov.net> (raw)
In-Reply-To: <83blgvmnpu.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 21 Oct 2020 21:35:25 +0300")
[-- Attachment #1: Type: text/plain, Size: 1084 bytes --]
>> >> (prin1 '(("'A" . [?Á])
>> >> ("'E" . [?É])
>> >> ("'I" . [?Í])
>> >> ("'O" . [?Ó])
>> >> ("'U" . [?Ú])
>> >> ("'Y" . [?Ý]))
>> >> (current-buffer))
>> >
>> > Why do you have to use prin1?
>>
>> Actually I need to use pp-to-string to pretty-print the list,
>> but pp-to-string calls '(prin1 object (current-buffer))'.
>
> prin1 accepts a function as its 2nd argument; can you use that?
I tried to use a function in the 2nd argument, but it's called
for every digit of the integer that represents a character,
so I don't know what to do with these digits.
However, do you think something like the following is a good idea?
Let-binding a new variable 'print-integers-as-chars' to t:
(let ((print-integers-as-chars t))
(pp '(("'A" . [?Á])
("'E" . [?É])
("'I" . [?Í])
("'O" . [?Ó])
("'U" . [?Ú])
("'Y" . [?Ý]))
(current-buffer)))
prints integers as characters:
(("'A" . [?Á])
("'E" . [?É])
("'I" . [?Í])
("'O" . [?Ó])
("'U" . [?Ú])
("'Y" . [?Ý]))
with this patch:
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: print-integers-as-chars.patch --]
[-- Type: text/x-diff, Size: 1244 bytes --]
diff --git a/src/print.c b/src/print.c
index dca095f281..1755eea738 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1908,8 +1908,16 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag)
{
case_Lisp_Int:
{
- int len = sprintf (buf, "%"pI"d", XFIXNUM (obj));
- strout (buf, len, len, printcharfun);
+ if (!NILP (Vprint_integers_as_chars) && CHARACTERP (obj))
+ {
+ int len = sprintf (buf, "%s", SDATA (call1 (intern ("prin1-char"), obj)));
+ strout (buf, len, len, printcharfun);
+ }
+ else
+ {
+ int len = sprintf (buf, "%"pI"d", XFIXNUM (obj));
+ strout (buf, len, len, printcharfun);
+ }
}
break;
@@ -2247,6 +2255,10 @@ syms_of_print (void)
that represents the number without losing information. */);
Vfloat_output_format = Qnil;
+ DEFVAR_LISP ("print-integers-as-chars", Vprint_integers_as_chars,
+ doc: /* Print integers as characters. */);
+ Vprint_integers_as_chars = Qnil;
+
DEFVAR_LISP ("print-length", Vprint_length,
doc: /* Maximum length of list to print before abbreviating.
A value of nil means no limit. See also `eval-expression-print-length'. */);
next prev parent reply other threads:[~2020-10-21 19:39 UTC|newest]
Thread overview: 109+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-08 12:05 bug#43866: 26.3; italian postfix additions Francesco Potortì
2020-10-08 12:26 ` Eli Zaretskii
2020-10-08 12:34 ` Francesco Potortì
2020-10-08 12:39 ` Robert Pluim
2020-10-08 12:57 ` Eli Zaretskii
2020-10-08 13:54 ` Robert Pluim
2020-10-08 14:24 ` Robert Pluim
2020-10-08 14:32 ` Eli Zaretskii
2020-10-08 13:26 ` Francesco Potortì
2020-10-08 14:00 ` Robert Pluim
2020-10-13 20:07 ` Juri Linkov
2020-10-14 2:31 ` Eli Zaretskii
2020-10-14 8:07 ` Juri Linkov
2020-10-14 15:07 ` Eli Zaretskii
2020-10-14 19:40 ` Juri Linkov
2020-10-15 2:34 ` Eli Zaretskii
2020-10-19 20:45 ` Juri Linkov
2020-10-19 23:12 ` Stefan Kangas
2020-10-20 18:42 ` Juri Linkov
2020-10-20 14:12 ` Eli Zaretskii
2020-10-20 14:47 ` Robert Pluim
2020-10-20 15:50 ` Eli Zaretskii
2020-10-20 18:44 ` Juri Linkov
2020-10-20 19:05 ` Juri Linkov
2020-10-21 8:11 ` Robert Pluim
2020-10-21 14:29 ` Eli Zaretskii
2020-10-21 14:40 ` Robert Pluim
2020-10-21 15:23 ` Eli Zaretskii
2020-10-21 17:30 ` Juri Linkov
2020-10-20 19:56 ` Juri Linkov
2020-10-21 14:02 ` Eli Zaretskii
2020-10-21 17:23 ` Juri Linkov
2020-10-21 18:16 ` Eli Zaretskii
2020-10-21 18:27 ` Juri Linkov
2020-10-21 18:35 ` Eli Zaretskii
2020-10-21 19:39 ` Juri Linkov [this message]
2020-10-22 12:59 ` Eli Zaretskii
2020-10-22 20:56 ` bug#44155: Print integers as characters Juri Linkov
2020-10-22 22:39 ` Andreas Schwab
2020-10-23 8:16 ` Juri Linkov
2020-10-23 8:32 ` Juri Linkov
2020-10-24 19:53 ` Juri Linkov
2020-10-25 17:22 ` Eli Zaretskii
2020-10-25 19:09 ` Juri Linkov
2020-10-25 19:53 ` Eli Zaretskii
2020-10-27 20:08 ` Juri Linkov
2020-10-28 15:51 ` Eli Zaretskii
2020-10-28 19:41 ` Juri Linkov
2020-10-29 14:20 ` Eli Zaretskii
2020-10-29 21:00 ` Juri Linkov
2020-10-30 7:35 ` Eli Zaretskii
2020-10-31 20:11 ` Juri Linkov
2020-10-31 23:27 ` Glenn Morris
2020-11-01 7:58 ` Juri Linkov
2020-11-01 15:13 ` Eli Zaretskii
2020-11-01 18:39 ` Juri Linkov
2020-11-01 18:51 ` Eli Zaretskii
2020-11-01 19:13 ` Juri Linkov
2020-11-01 19:41 ` Eli Zaretskii
2020-11-01 20:16 ` Juri Linkov
2020-11-01 12:03 ` Mattias Engdegård
2020-11-01 18:35 ` Juri Linkov
2020-11-01 20:52 ` Mattias Engdegård
2020-11-02 21:36 ` Juri Linkov
2020-11-02 23:03 ` Mattias Engdegård
2020-11-03 8:30 ` Juri Linkov
2020-11-03 15:24 ` Eli Zaretskii
2020-11-03 18:47 ` Mattias Engdegård
2020-11-03 19:36 ` Eli Zaretskii
2020-11-04 11:03 ` Mattias Engdegård
2020-11-04 15:38 ` Eli Zaretskii
2020-11-04 16:46 ` Mattias Engdegård
2020-11-04 16:58 ` Mattias Engdegård
2020-11-06 13:02 ` Mattias Engdegård
2022-04-30 12:19 ` bug#43866: 26.3; italian postfix additions Lars Ingebrigtsen
2022-04-30 12:29 ` Eli Zaretskii
2022-04-30 14:49 ` Lars Ingebrigtsen
2022-04-30 15:26 ` Eli Zaretskii
2022-04-30 18:49 ` Lars Ingebrigtsen
2022-05-29 13:35 ` Lars Ingebrigtsen
2020-10-15 3:52 ` Richard Stallman
2020-10-14 4:38 ` Richard Stallman
2020-10-14 8:11 ` Juri Linkov
2020-10-14 10:43 ` Robert Pluim
2020-10-15 3:54 ` Richard Stallman
2020-10-14 14:56 ` Eli Zaretskii
2020-10-08 15:23 ` Mattias Engdegård
2020-10-08 15:35 ` Robert Pluim
2020-10-08 16:22 ` Francesco Potortì
2020-10-08 15:42 ` Eli Zaretskii
2020-10-08 16:10 ` Francesco Potortì
2020-10-08 17:18 ` Robert Pluim
2020-10-08 17:28 ` Francesco Potortì
2020-10-08 17:59 ` Mattias Engdegård
2020-10-08 19:55 ` Francesco Potortì
2020-10-09 4:42 ` Lars Ingebrigtsen
2020-10-09 11:26 ` Mattias Engdegård
2020-10-09 11:53 ` Thien-Thi Nguyen
2020-10-09 12:45 ` Robert Pluim
2020-10-09 14:31 ` Eli Zaretskii
2020-10-09 14:48 ` Robert Pluim
2020-10-09 15:04 ` Eli Zaretskii
2020-10-10 20:54 ` Lars Ingebrigtsen
2020-10-12 9:26 ` Robert Pluim
2020-10-09 15:05 ` Mattias Engdegård
2020-10-09 15:08 ` Robert Pluim
2020-10-09 15:28 ` Mattias Engdegård
2020-10-09 15:10 ` Eli Zaretskii
2020-10-09 15:21 ` Robert Pluim
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87h7qn1i8z.fsf@mail.linkov.net \
--to=juri@linkov.net \
--cc=43866@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=rpluim@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.