* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author Lars Gullik Bjønnes
+ * \author Lars Gullik Bjønnes
*
* Full author contact details are available in file CREDITS.
*/
#include "LyXAction.h"
#include "Lexer.h"
#include "Text.h"
+#include "LyX.h"
#include "LyXRC.h"
#include "LyXVC.h"
#include "Messages.h"
params().headheight.erase();
params().headsep.erase();
params().footskip.erase();
+ params().listings_params.clear();
for (int i = 0; i < 4; ++i) {
params().user_defined_bullet(i) = ITEMIZE_DEFAULTS[i];
params().temp_bullet(i) = ITEMIZE_DEFAULTS[i];
if (!openFileWrite(ofs, fname))
return false;
+ bool failed_export = false;
try {
writeLaTeXSource(ofs, original_path,
runparams, output_preamble, output_body);
}
- catch (iconv_codecvt_facet_exception &) {
- Alert::error(_("Encoding error"),
- _("Some characters of your document are not "
- "representable in the chosen encoding.\n"
- "Changing the document encoding to utf8 could help."));
- return false;
+ catch (iconv_codecvt_facet_exception & e) {
+ lyxerr << "Caught iconv exception: " << e.what() << endl;
+ failed_export = true;
+ }
+ catch (std::exception const & e) {
+ lyxerr << "Caught \"normal\" exception: " << e.what() << endl;
+ failed_export = true;
+ }
+ catch (...) {
+ lyxerr << "Caught some really weird exception..." << endl;
+ LyX::cref().emergencyCleanup();
+ abort();
}
ofs.close();
if (ofs.fail()) {
+ failed_export = true;
lyxerr << "File '" << fname << "' was not closed properly." << endl;
- Alert::error(_("Error closing file"),
- _("The output file could not be closed properly.\n"
- " Probably some characters of your document are not "
- "representable in the chosen encoding.\n"
- "Changing the document encoding to utf8 could help."));
+ }
+
+ if (failed_export) {
+ Alert::error(_("Encoding error"),
+ _("Some characters of your document are probably not "
+ "representable in the chosen encoding.\n"
+ "Changing the document encoding to utf8 could help."));
return false;
}
return true;
if (!params().parentname.empty()
&& theBufferList().exists(params().parentname)) {
Buffer const * buf = theBufferList().getBuffer(params().parentname);
- if (buf)
+ //We need to check if the parent is us...
+ //FIXME RECURSIVE INCLUDE
+ //This is not sufficient, since recursive includes could be downstream.
+ if (buf && buf != this)
return buf->getMasterBuffer();
}
runparams.dryrun = true;
if (full_source) {
- os << "% Preview source code\n\n";
+ os << "% " << _("Preview source code") << "\n\n";
if (isLatex())
writeLaTeXSource(os, filePath(), runparams, true, true);
else {
runparams.par_begin = par_begin;
runparams.par_end = par_end;
if (par_begin + 1 == par_end)
- os << "% Preview source code for paragraph " << par_begin << "\n\n";
+ os << "% "
+ << bformat(_("Preview source code for paragraph %1$s"), par_begin)
+ << "\n\n";
else
- os << "% Preview source code from paragraph " << par_begin
- << " to " << par_end - 1 << "\n\n";
+ os << "% "
+ << bformat(_("Preview source code from paragraph %1$s to %2$s"),
+ convert<docstring>(par_begin),
+ convert<docstring>(par_end - 1))
+ << "\n\n";
// output paragraphs
if (isLatex()) {
texrow().reset();