This patch fixes wrong output of paperfontsize and updates the file format 
to 241 in tex2lyx.
Committing now.

Georg
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/ChangeLog lyx-1.4-cvs/src/tex2lyx/ChangeLog
--- lyx-1.4-clean/src/tex2lyx/ChangeLog	2005-02-03 20:13:24.000000000 +0100
+++ lyx-1.4-cvs/src/tex2lyx/ChangeLog	2005-02-06 09:59:31.000000000 +0100
@@ -1,3 +1,14 @@
+2005-02-05  Georg Baum  <[EMAIL PROTECTED]>
+
+	* context.C (begin_deeper, end_deeper): adjust output to LyX
+	* preamble.C (h_output_changes): new
+	* preamble.C (end_preamble): output paperfontsize without unit
+	* preamble.C (end_preamble): change file format from 237 to 241
+	* text.C (parse_environment, parse_text): adjust paragraph parameters
+	to new file format
+	* text.C (handle_ert, handle_comment): adjust newlines to new file
+	format
+
 2005-02-03  Angus Leeming  <[EMAIL PROTECTED]>
 
 	* Makefile.am: make -lz conditional on USE_COMPRESSION.
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/context.C lyx-1.4-cvs/src/tex2lyx/context.C
--- lyx-1.4-clean/src/tex2lyx/context.C	2004-10-11 14:07:15.000000000 +0200
+++ lyx-1.4-cvs/src/tex2lyx/context.C	2004-10-31 09:17:27.000000000 +0100
@@ -36,13 +36,13 @@ void end_layout(ostream & os)
 
 void begin_deeper(ostream & os)
 {
-	os << "\n\\begin_deeper\n";
+	os << "\n\\begin_deeper";
 }
 
 
 void end_deeper(ostream & os)
 {
-	os << "\n\\end_deeper\n";
+	os << "\n\\end_deeper";
 }
 
 }
@@ -73,7 +97,10 @@ void Context::check_layout(ostream & os)
 		// are we in a list-like environment?
 		if (layout->isEnvironment()
 		    && layout->latextype != LATEX_ENVIRONMENT) {
+			// A list-like environment
 			if (has_item) {
+				// a new item. If we had a standard
+				// paragraph before, we have to end it.
 				if (deeper_paragraph) {
 					end_deeper(os);
 					deeper_paragraph = false;
@@ -94,6 +121,7 @@ void Context::check_layout(ostream & os)
 				deeper_paragraph = true;
 			}
 		} else {
+			// No list-like environment
 			begin_layout(os, layout);
 			need_layout=false;
 			need_end_layout = true;
@@ -119,6 +147,8 @@ void Context::check_end_layout(ostream &
 void Context::check_deeper(ostream & os)
 {
 	if (parent_layout->isEnvironment()) {
+		// We start a nested environment.
+		// We need to increase the depth.
 		if (need_end_deeper) {
 			// no need to have \end_deeper \begin_deeper
 			need_end_deeper = false;
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/preamble.C lyx-1.4-cvs/src/tex2lyx/preamble.C
--- lyx-1.4-clean/src/tex2lyx/preamble.C	2005-01-06 20:28:50.000000000 +0100
+++ lyx-1.4-cvs/src/tex2lyx/preamble.C	2005-02-06 10:01:27.000000000 +0100
@@ -85,6 +89,7 @@ string h_papercolumns            = "1";
 string h_papersides              = string();
 string h_paperpagestyle          = "default";
 string h_tracking_changes        = "false";
+string h_output_changes          = "false";
 
 
 void handle_opt(vector<string> & opts, char const * const * what, string & target)
@@ -225,7 +252,7 @@ void handle_package(string const & name,
 void end_preamble(ostream & os, LyXTextClass const & /*textclass*/)
 {
 	os << "#LyX file created by  tex2lyx 0.1.2\n"
-	   << "\\lyxformat 237\n"
+	   << "\\lyxformat 241\n"
 	   << "\\begin_document\n"
 	   << "\\begin_header\n"
 	   << "\\textclass " << h_textclass << "\n"
@@ -255,6 +287,7 @@ void end_preamble(ostream & os, LyXTextC
 	   << "\\papersides " << h_papersides << "\n"
 	   << "\\paperpagestyle " << h_paperpagestyle << "\n"
 	   << "\\tracking_changes " << h_tracking_changes << "\n"
+	   << "\\output_changes " << h_output_changes << "\n"
 	   << "\\end_header\n\n"
 	   << "\\begin_body\n";
 	// clear preamble for subdocuments
@@ -365,6 +516,10 @@ LyXTextClass const parse_preamble(Parser
 			split(p.getArg('[', ']'), opts, ',');
 			handle_opt(opts, known_languages, h_language);
 			handle_opt(opts, known_fontsizes, h_paperfontsize);
+			// delete "pt" at the end
+			string::size_type i = h_paperfontsize.find("pt");
+			if (i != string::npos)
+				h_paperfontsize.erase(i);
 			h_quotes_language = h_language;
 			h_options = join(opts, ",");
 			h_textclass = p.getArg('{', '}');
@@ -393,16 +555,17 @@ LyXTextClass const parse_preamble(Parser
 			ss << p.getOpt();
 			ss << '{' << p.verbatim_item() << '}';
 			ss << '{' << p.verbatim_item() << '}';
-			if (name != "lyxcode" && name != "lyxlist"
-					&& name != "lyxrightadress" && name != "lyxaddress")
+			if (name != "lyxcode" && name != "lyxlist" &&
+			    name != "lyxrightadress" && name != "lyxaddress")
 				h_preamble << ss.str();
 		}
 
 		else if (t.cs() == "def") {
 			string name = p.get_token().cs();
 			while (p.next_token().cat() != catBegin)
 				name += p.get_token().asString();
-			h_preamble << "\\def\\" << name << '{' << p.verbatim_item() << "}";
+			h_preamble << "\\def\\" << name << '{'
+			           << p.verbatim_item() << "}";
 		}
 
 		else if (t.cs() == "newcolumntype") {
diff -p -r -U 3 -X excl.tmp lyx-1.4-clean/src/tex2lyx/text.C lyx-1.4-cvs/src/tex2lyx/text.C
--- lyx-1.4-clean/src/tex2lyx/text.C	2005-02-03 20:13:24.000000000 +0100
+++ lyx-1.4-cvs/src/tex2lyx/text.C	2005-02-04 22:10:52.000000000 +0100
@@ -197,7 +200,7 @@ map<string, string> split_map(string con
  * The latter can be a real unit like "pt", or a latex length variable
  * like "\textwidth". The unit may contain additional stuff like glue
  * lengths, but we don't care, because such lengths are ERT anyway.
- * \return true if \param value and \param unit are valid.
+ * \returns true if \p value and \p unit are valid.
  */
 bool splitLatexLength(string const & len, string & value, string & unit)
 {
@@ -283,10 +286,10 @@ string translate_len(string const & leng
 
 
 /*!
- * Translates a LaTeX length into \param value, \param unit and
- * \param special parts suitable for a box inset.
+ * Translates a LaTeX length into \p value, \p unit and
+ * \p special parts suitable for a box inset.
  * The difference from translate_len() is that a box inset knows about
- * some special "units" that are stored in \param special.
+ * some special "units" that are stored in \p special.
  */
 void translate_box_len(string const & length, string & value, string & unit, string & special)
 {
@@ -362,9 +365,10 @@ void handle_ert(ostream & os, string con
 	for (string::const_iterator it = s.begin(), et = s.end(); it != et; ++it) {
 		if (*it == '\\')
 			os << "\n\\backslash\n";
-		else if (*it == '\n')
-			os << "\n\\newline\n";
-		else
+		else if (*it == '\n') {
+			newcontext.new_paragraph(os);
+			newcontext.check_layout(os);
+		} else
 			os << *it;
 	}
 	newcontext.check_end_layout(os);
@@ -386,7 +390,8 @@ void handle_comment(ostream & os, string
 			os << *it;
 	}
 	// make sure that our comment is the last thing on the line
-	os << "\n\\newline";
+	newcontext.new_paragraph(os);
+	newcontext.check_layout(os);
 	newcontext.check_end_layout(os);
 	end_inset(os);
 }
@@ -687,11 +817,11 @@ void parse_environment(Parser & p, ostre
 			parent_context.new_paragraph(os);
 		}
 		if (name == "flushleft" || name == "raggedright")
-			parent_context.add_extra_stuff("\\align left ");
+			parent_context.add_extra_stuff("\\align left\n");
 		else if (name == "flushright" || name == "raggedleft")
-			parent_context.add_extra_stuff("\\align right ");
+			parent_context.add_extra_stuff("\\align right\n");
 		else
-			parent_context.add_extra_stuff("\\align center ");
+			parent_context.add_extra_stuff("\\align center\n");
 		parse_text(p, os, FLAG_END, outer, parent_context);
 		// Just in case the environment is empty ..
 		parent_context.extra_stuff.erase();
@@ -1141,12 +1382,12 @@ void parse_text(Parser & p, ostream & os
 
 		else if (t.cs() == "noindent") {
 			p.skip_spaces();
-			context.add_extra_stuff("\\noindent ");
+			context.add_extra_stuff("\\noindent\n");
 		}
 
 		else if (t.cs() == "appendix") {
 			p.skip_spaces();
-			context.add_extra_stuff("\\start_of_appendix ");
+			context.add_extra_stuff("\\start_of_appendix\n");
 		}
 
 		// Must attempt to parse "Section*" before "Section".
@@ -1347,6 +1603,8 @@ void parse_text(Parser & p, ostream & os
 		}
 
 		else if (t.cs() == "makeindex" || t.cs() == "maketitle") {
+			// FIXME: Somehow prevent title layouts if
+			// "maketitle" was not found
 			p.skip_spaces();
 			skip_braces(p); // swallow this
 		}
@@ -1471,8 +1728,8 @@ void parse_text(Parser & p, ostream & os
 		else if (use_natbib &&
 		         is_known(t.cs(), known_natbib_commands) &&
 		         ((t.cs() != "citefullauthor" &&
-			   t.cs() != "citeyear" &&
-			   t.cs() != "citeyearpar") ||
+		           t.cs() != "citeyear" &&
+		           t.cs() != "citeyearpar") ||
 		          p.next_token().asInput() != "*")) {
 			context.check_layout(os);
 			// tex                       lyx
@@ -1541,12 +1798,12 @@ void parse_text(Parser & p, ostream & os
 			string const citation = p.verbatim_item();
 			if (!before.empty() && argumentOrder == '\0') {
 				cerr << "Warning: Assuming argument order "
-				     << "of jurabib version 0.6 for\n'"
+				        "of jurabib version 0.6 for\n'"
 				     << command << before << after << '{'
 				     << citation << "}'.\n"
-				     << "Add 'jurabiborder' to the jurabib "
-				     << "package options if you used an\n"
-				     << "earlier jurabib version." << endl;
+				        "Add 'jurabiborder' to the jurabib "
+				        "package options if you used an\n"
+				        "earlier jurabib version." << endl;
 			}
 			begin_inset(os, "LatexCommand ");
 			os << command << after << before

Reply via email to