Am Dienstag, 24. Oktober 2006 21:42 schrieb Georg Baum:
> Is this changed comment understandable?
>
> if (change_encoding) {
> lyxerr[Debug::LATEX] << "Converting paragraph to encoding "
> << language->encoding()->iconvName() << endl;
> docstring const par = par_stream.str();
> // Convert the paragraph to the 8bit encoding that we need to
> // output.
> std::vector<char> const encoded = lyx::from_ucs4(par.c_str(),
> par.size(), language->encoding()->iconvName());
> // Interpret this as if it was in the 8 bit encoding of the
> // document language and convert it back to UCS4. That means
> // that faked does not contain pure UCS4 anymore, but what
> // will be written to the output file will be correct, because
> // the real output stream will do a UCS4 -> document language
> // encoding conversion.
> // This is of course a hack, but not a bigger one than mixing
> // two encodings in one file.
> // FIXME: Catch iconv conversion errors and display an error
> // dialog.
> std::vector<char_type> const faked = lyx::to_ucs4(encoded.data(),
> encoded.size(), doc_language->encoding()->iconvName());
> std::vector<char_type>::const_iterator const end = faked.end();
> std::vector<char_type>::const_iterator it = faked.begin();
> for (; it != end; ++it)
> ucs4.put(*it);
> }
>
> If not I have to think more.
I committed this version. If the comment is still not clear please tell.
Those who want to have utf8 inputencoding back should please act on the
various FIXMEs I added. It is not difficult, but I don't have the time
right now.
Georg