]> git.lyx.org Git - lyx.git/blob - src/output.cpp
0e51cf3becc8440a9162e36f8b2fe79a61a2a2c9
[lyx.git] / src / output.cpp
1 /**
2  * \file output.cpp
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Lars Gullik Bjønnes
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "output.h"
14
15 #include "support/gettext.h"
16
17 #include "frontends/alert.h"
18
19 #include "support/filetools.h"
20 #include "support/lstrings.h"
21
22 using namespace std;
23
24 namespace lyx {
25
26 using support::bformat;
27 using support::FileName;
28
29 namespace {
30
31 template<typename OFStream>
32 bool doOpenFileWrite(OFStream & ofs, FileName const & fname)
33 {
34         ofs.open(fname.toFilesystemEncoding().c_str());
35         if (ofs)
36                 return true;
37         docstring const file = fname.displayName(50);
38         docstring text = bformat(_("Could not open the specified "
39                                                          "document\n%1$s."), file);
40         frontend::Alert::error(_("Could not open file"), text);
41         return false;
42 }
43
44 }
45
46
47 bool openFileWrite(ofstream & ofs, FileName const & fname)
48 {
49         return doOpenFileWrite(ofs, fname);
50 }
51
52
53 bool openFileWrite(odocfstream & ofs, FileName const & fname)
54 {
55         return doOpenFileWrite(ofs, fname);
56 }
57
58
59 } // namespace lyx