emacs-devel
[Top][All Lists]
Advanced

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

Re: [HELP] (bug?) Saving a buffer without any conversion?


From: Mario Lang
Subject: Re: [HELP] (bug?) Saving a buffer without any conversion?
Date: Tue, 14 Jan 2003 07:46:11 +0100
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu)

Eli Zaretskii <address@hidden> writes:

> On 14 Jan 2003, Kim F. Storm wrote:
>
>> > We're receiving binary content via a network process.  After the
>> > transfer is complete, this buffer should be saved to a file.
>> > 
>> > The effect I'm having is that we receive 1372422 bytes via the process
>> > filter function STRING argument, and after insertion into a buffer,
>> > we have a buffer with buffer-size 1372422, but after calling (save-buffer)
>> > we get this:
>> > 
>> > -rw-r--r--    1 root     root      1865264 Jan 13 18:35 blah28.mp3
>> > 
>> > I'm using:
>> > 
>> >       (set-process-coding-system proc 'binary 'binary)
>> >       (set-buffer-file-coding-system 'no-conversion t)
>> > 
>> 
>> I have looked at Mario's data before sending it to emacs and after
>> emacs has written it to a file.
>> 
>> It seems that every byte in the range 0xa0 .. 0xff that were in the
>> original file is prefixed with an 0x81 byte in the file containing the
>> received data.  To me, that looks like the internal multi-byte
>> representation for the binary data.
>
> Yes.  That's what no-conversion does: it prevents encoding of the 
> internal buffer's contents.
>
> I suggest to use raw-text for both coding systems above, and see if that 
> helps.

I've tried that now, and no.  'raw-text has the same effect as
'no-conversion or 'binary....

> An alternative approach is to (set-buffer-multibyte nil) before reading 
> the data into it and before saving it.

This works!  Thanks!  But I'm still a bit confused as to why
setting coding-system does not help.

>> The buffer's coding system for save is no-conversion.  How did
>> that internal data end up in the file?
>
> Probably because the buffer was a multibyte buffer, in which case 
> no-conversion writes out the internal representation.  That's why I 
> suggested using raw-text to save the buffer.

Hmm, well raw-text sounds right, but it doesnt work.  Any idea why?

-- 
CYa,
  Mario




reply via email to

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