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"