These patches work around a bug in the gcc 2.95 STL implementation.
Committing now.
-- 
Angus
Index: src/support/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/ChangeLog,v
retrieving revision 1.149.2.36
diff -u -p -r1.149.2.36 ChangeLog
--- src/support/ChangeLog	3 Feb 2005 14:56:11 -0000	1.149.2.36
+++ src/support/ChangeLog	15 Feb 2005 18:52:55 -0000
@@ -1,3 +1,7 @@
+2005-02-15  Angus Leeming  <[EMAIL PROTECTED]>
+
+	* filetools.C (setEnvPath): compare iterators rather than use tellp().
+
 2005-02-03  Angus Leeming  <[EMAIL PROTECTED]>
 
 	* forkedcall.C (running): call the lyx::kill wrapper function
Index: src/support/filetools.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/filetools.C,v
retrieving revision 1.146.2.14
diff -u -p -r1.146.2.14 filetools.C
--- src/support/filetools.C	2 Feb 2005 12:58:06 -0000	1.146.2.14
+++ src/support/filetools.C	15 Feb 2005 18:52:57 -0000
@@ -414,14 +414,15 @@ void setEnvPath(string const & name, vec
 {
 	char const separator(os::path_separator());
 	std::ostringstream ss;
-	vector<string>::const_iterator it = env.begin();
+	vector<string>::const_iterator const begin = env.begin();
 	vector<string>::const_iterator const end = env.end();
+	vector<string>::const_iterator it = begin;
 	for (; it != end; ++it) {
-		if (ss.tellp() > 0)
+		if (it != begin)
 			ss << separator;
 		ss << os::external_path(*it);
 	}
-	PutEnv(name + "=" + ss.str());
+	PutEnv(name + "=" + string(STRCONV(ss.str())));
 }
 
 
Index: src/support/ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/ChangeLog,v
retrieving revision 1.326
diff -u -p -r1.326 ChangeLog
--- src/support/ChangeLog	15 Feb 2005 18:43:41 -0000	1.326
+++ src/support/ChangeLog	15 Feb 2005 18:51:53 -0000
@@ -1,6 +1,7 @@
 2005-02-15  Angus Leeming  <[EMAIL PROTECTED]>
 
 	* environment.C: add missing #include.
+	(setEnvPath): compare iterators rather than use tellp().
 
 2005-02-15  Angus Leeming  <[EMAIL PROTECTED]>
 
Index: src/support/environment.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/environment.C,v
retrieving revision 1.2
diff -u -p -r1.2 environment.C
--- src/support/environment.C	15 Feb 2005 18:43:41 -0000	1.2
+++ src/support/environment.C	15 Feb 2005 18:51:53 -0000
@@ -89,10 +89,11 @@ void setEnvPath(string const & name, vec
 {
 	char const separator(os::path_separator());
 	std::ostringstream ss;
-	vector<string>::const_iterator it = env.begin();
+	vector<string>::const_iterator const begin = env.begin();
 	vector<string>::const_iterator const end = env.end();
+	vector<string>::const_iterator it = begin;
 	for (; it != end; ++it) {
-		if (ss.tellp() > 0)
+		if (it != begin)
 			ss << separator;
 		ss << os::external_path(*it);
 	}

Reply via email to