/**
* \file sgml.C
- * Copyright 2002 the LyX Team
- * Read the file COPYING
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
* \author José Matos
- * \author John Levon <levon@movementarian.org>
+ * \author John Levon
+ *
+ * Full author contact details are available in file CREDITS.
*/
-#include "sgml.h"
+#include <config.h>
+
+#include "support/std_ostream.h"
+
#include "paragraph.h"
-
-using std::pair;
+#include "sgml.h"
+
+using std::endl;
using std::make_pair;
-
+
+using std::ostream;
+using std::pair;
+using std::string;
+
+
namespace sgml {
pair<bool, string> escapeChar(char c)
{
string str;
-
+
switch (c) {
- case Paragraph::META_HFILL:
- break;
- case Paragraph::META_NEWLINE:
- str = '\n';
- break;
case ' ':
return make_pair(true, string(" "));
break;
return make_pair(false, str);
}
+
+int openTag(ostream & os, Paragraph::depth_type depth,
+ bool mixcont, string const & latexname,
+ string const & latexparam)
+{
+ if (!latexname.empty() && latexname != "!-- --") {
+ if (!mixcont)
+ os << string(depth, ' ');
+ os << '<' << latexname;
+ if (!latexparam.empty())
+ os << " " << latexparam;
+ os << '>';
+ }
+
+ if (!mixcont)
+ os << endl;
+
+ return !mixcont;
+}
+
+
+int closeTag(ostream & os, Paragraph::depth_type depth,
+ bool mixcont, string const & latexname)
+{
+ if (!latexname.empty() && latexname != "!-- --") {
+ if (!mixcont)
+ os << endl << string(depth, ' ');
+ os << "</" << latexname << '>';
+ }
+
+ if (!mixcont)
+ os << endl;
+
+ return !mixcont;
+}
+
+
+unsigned int closeEnvTags(ostream & os, bool mixcont,
+ string const & environment_inner_depth,
+ string const & itemtag,
+ lyx::depth_type total_depth)
+{
+ unsigned int lines = 0;
+ if (environment_inner_depth != "!-- --") {
+ lines += closeTag(os, total_depth, mixcont, itemtag);
+ if (!environment_inner_depth.empty())
+ lines += closeTag(os, total_depth, mixcont,
+ environment_inner_depth);
+ }
+ return lines;
+}
+
+
} // namespace sgml