bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#32562: 26; `read-char(-exclusive)' and `characterp'


From: Drew Adams
Subject: bug#32562: 26; `read-char(-exclusive)' and `characterp'
Date: Tue, 28 Aug 2018 14:24:36 -0700 (PDT)

> forcemerge 13599 32562
> quit
> 
> > Something seems wrong.  The doc for `read-char(-exclusive)' talks about
> > reading a character. For `read-char' it says that it raises an error for
> > a non-char event.  And for `read-char-exclusive' it says that it ignores
> > non-char events that it reads.
> >
> > But they both seem to read the event from `M-:' and return its value
> > (a number). And it is not a character, according to `characterp'.
> 
> This is bug#13599/1042

Hm. Maybe it is. But is `read-char' necessarily about chars that satisfy 
`characterp'?

I would think so, but maybe not. And there are other "character" functions, 
which accept chars as args - `text-char-description', for example. (That's what 
I was passing the result of `read-char' to.) 

The doc string of `text-char-description' says "file-character CHARACTER". 
What's a "file character"? A character that can appear in a file name? Same 
thing as what `max-char' should recognize? Same thing as what `read-char' 
should consider a char? The Elisp manual (node Describing Characters) says it 
is "characters that appear in text—like ‘single-key-description’, except 
that..." It says nothing about "file characters". The doc is not too clear.

This stuff is not clear more generally, I think - beyond the max value of 
`max-char'. Do we have or want to have different kinds of "characters" returned 
from or passed as args to different "character" functions? Why (or why not)?

Wrt my original problem: taking a value of `M-:' from `read-char' and passing 
it to `text-char-description', Emacs has a regression of sorts. Older Emacs 
versions "work", whereas recent versions raise an error. E.g. Emacs 20 
`read-char' returns -134217670, and passing that to `text-char-description' 
gives "\272". Whatever `read-char' can read, it seems, `text-char-description' 
can describe (perhaps imperfectly?).

I think that "the bug" is not so clear cut as just adjusting `max-char'. I 
think the behavior of several functions that expect or return chars might 
deserve adjustment, and the doc might deserve some clarification/fixes. We 
might need to decide what the right behaviors are first.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]