(printchar): Cancel previous change.
This commit is contained in:
parent
e62e3e6b5e
commit
c7e3eb8b1b
1 changed files with 14 additions and 20 deletions
34
src/print.c
34
src/print.c
|
@ -417,29 +417,23 @@ printchar (ch, fun)
|
|||
|
||||
/* Convert message to multibyte if we are now adding multibyte text. */
|
||||
if (! NILP (current_buffer->enable_multibyte_characters)
|
||||
&& len > 1
|
||||
&& ! message_enable_multibyte)
|
||||
&& ! message_enable_multibyte
|
||||
&& printbufidx > 0)
|
||||
{
|
||||
/* If we have already had some message text in the messsage
|
||||
buffer, we must convert it to multibyte. */
|
||||
if (printbufidx > 0)
|
||||
int size = count_size_as_multibyte (FRAME_MESSAGE_BUF (mini_frame),
|
||||
printbufidx);
|
||||
unsigned char *tembuf = (unsigned char *) alloca (size + 1);
|
||||
copy_text (FRAME_MESSAGE_BUF (mini_frame), tembuf, printbufidx,
|
||||
0, 1);
|
||||
printbufidx = size;
|
||||
if (printbufidx > FRAME_MESSAGE_BUF_SIZE (mini_frame))
|
||||
{
|
||||
int size
|
||||
= count_size_as_multibyte (FRAME_MESSAGE_BUF (mini_frame),
|
||||
printbufidx);
|
||||
unsigned char *tembuf = (unsigned char *) alloca (size + 1);
|
||||
copy_text (FRAME_MESSAGE_BUF (mini_frame), tembuf, printbufidx,
|
||||
0, 1);
|
||||
printbufidx = size;
|
||||
if (printbufidx > FRAME_MESSAGE_BUF_SIZE (mini_frame))
|
||||
{
|
||||
printbufidx = FRAME_MESSAGE_BUF_SIZE (mini_frame);
|
||||
/* Rewind incomplete multi-byte form. */
|
||||
while (printbufidx > 0 && tembuf[printbufidx] >= 0xA0)
|
||||
printbufidx--;
|
||||
}
|
||||
bcopy (tembuf, FRAME_MESSAGE_BUF (mini_frame), printbufidx);
|
||||
printbufidx = FRAME_MESSAGE_BUF_SIZE (mini_frame);
|
||||
/* Rewind incomplete multi-byte form. */
|
||||
while (printbufidx > 0 && tembuf[printbufidx] >= 0xA0)
|
||||
printbufidx--;
|
||||
}
|
||||
bcopy (tembuf, FRAME_MESSAGE_BUF (mini_frame), printbufidx);
|
||||
message_enable_multibyte = 1;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue