Luis Rivera wrote:

> Sorry I reply so late... we're on finals, and I'm somewhat busy...

No worries.

> On Win95 I get the following,
> <package>
> binary_dir C:/LyX/bin/
> system_support C:/LyX/Resources/lyx
> build_support
> user_support C:/WINDOWS/Application Data/LyX/
> locale_dir
> document_dir C:/WINDOWS/Desktop/My Documents
> temp_dir C:/WINDOWS/TEMP
> home_dir
> </package>

[snip Win98, WinXP and Cygwin results]

> So, apparently, the only misbehavior occurs on system_support on Win95,
> again... There is the missing backslash...
> 
> Please notice that I gave a backslashless path on command line.  I'll
> fiddle a little bit adding and deleting that backslash on different
> platforms to report the various behaviors...
> 
> I hope this is enough informative for now.

It's exactly what I was looking for. Thanks. Could you try out the attached
patch to package.C? Here it gives:

<package>
        binary_dir /home/angus/bin/
        system_support /home/angus/lyx/13x/lib/
        build_support /home/angus/lyx/13x/build-qt/lib/
        user_support /home/angus/.lyx/
        locale_dir
        document_dir /home/angus/
        temp_dir /tmp/
        home_dir /home/angus/
</package>

-- 
Angus
Index: src/support/package.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/support/Attic/package.C,v
retrieving revision 1.1.2.9
diff -u -p -r1.1.2.9 package.C
--- src/support/package.C	10 Oct 2005 21:54:22 -0000	1.1.2.9
+++ src/support/package.C	6 Dec 2005 21:45:29 -0000
@@ -98,6 +98,11 @@ std::pair<string, bool> const
 get_user_support_dir(string const & default_user_support_dir,
 		     string const & command_line_user_support_dir);
 
+string const append_trailing_slash(string const & input)
+{
+	return suffixIs(input, '/') ? input : input + '/';
+}
+
 } // namespace anon
 
 
@@ -106,29 +111,36 @@ Package::Package(string const & command_
 		 string const & command_line_user_support_dir)
 	: explicit_user_support_dir_(false)
 {
-	home_dir_ = get_home_dir();
-	temp_dir_ = get_temp_dir();
-	document_dir_ = get_document_dir(home_dir_);
+	home_dir_ = append_trailing_slash(get_home_dir());
+	temp_dir_ = append_trailing_slash(get_temp_dir());
+	document_dir_ = append_trailing_slash(get_document_dir(home_dir_));
 
 	string const abs_binary = abs_path_from_binary_name(command_line_arg0);
-	binary_dir_ = OnlyPath(abs_binary);
+	binary_dir_ = append_trailing_slash(OnlyPath(abs_binary));
 
 	// Is LyX being run in-place from the build tree?
 	boost::tie(build_support_dir_, system_support_dir_) =
 		get_build_dirs(abs_binary);
 
 	if (build_support_dir_.empty())
-		system_support_dir_ =
+		system_support_dir_ = append_trailing_slash(
 			get_system_support_dir(abs_binary,
-					       command_line_system_support_dir);
+					       command_line_system_support_dir));
+	else {
+		build_support_dir_ = append_trailing_slash(build_support_dir_);
+		system_support_dir_ = append_trailing_slash(system_support_dir_);
+	}
 
 	locale_dir_ = get_locale_dir(system_support_dir_);
+	if (!locale_dir_.empty())
+		locale_dir_ = append_trailing_slash(locale_dir_);
 
 	string const default_user_support_dir =
-		get_default_user_support_dir(home_dir_);
+		append_trailing_slash(get_default_user_support_dir(home_dir_));
 	boost::tie(user_support_dir_, explicit_user_support_dir_) =
 		get_user_support_dir(default_user_support_dir,
 				     command_line_user_support_dir);
+	user_support_dir_ = append_trailing_slash(user_support_dir_);
 
 	lyxerr[Debug::INIT]
 		<< "<package>\n"

Reply via email to