-/// Switch the encoding of \p os from \p oldEnc to \p newEnc if needed.
-/// \return the number of characters written to \p os.
-int switchEncoding(odocstream & os, BufferParams const & bparams,
- Encoding const & oldEnc, Encoding const & newEnc);
+/** Switch the encoding of \p os from runparams.encoding to \p newEnc if needed.
+ \p force forces this also within non-default or -auto encodings.
+ \return (did the encoding change?, number of characters written to \p os)
+ */
+std::pair<bool, int> switchEncoding(odocstream & os,
+ BufferParams const & bparams,
+ OutputParams const &, Encoding const & newEnc,
+ bool force = false);
+
+/// FIXME: this should not be visible.
+void TeXOnePar(Buffer const & buf,
+ Text const & text,
+ pit_type pit,
+ otexstream & os,
+ OutputParams const & runparams,
+ std::string const & everypar = std::string(),
+ int start_pos = -1, int end_pos = -1);