There is a bug in the automatic reconfiguration code:
If the user don't have ~/.lyx/lyxrc.default file, then the configure
script is invoked.
This is wrong: if the user environment is equal to the system environment,
then running the configure script does not create a ~/.lyx/lyxrc.default file.
In that case, lyx will run the configure script on each startup.

The attached patch fixes this.
Note that it assumes that the LYXLIBDIR/lyxrc.defaults file is updated
whenever a new version of LyX is installed (is this true ?).

? x.lyx
Index: ChangeLog
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/ChangeLog,v
retrieving revision 1.950
diff -u -p -r1.950 ChangeLog
--- ChangeLog   8 Oct 2002 09:24:01 -0000       1.950
+++ ChangeLog   9 Oct 2002 14:02:00 -0000
@@ -1,3 +1,7 @@
+2002-10-09  Dekel Tsur  <[EMAIL PROTECTED]>
+
+       * lyx_main.C (queryUserLyXDir): Fix automatic reconfiguration.
+
 2002-10-07  Jean-Marc Lasgouttes  <[EMAIL PROTECTED]>
 
        * lyxrc.C (read): treat a viewer or converter command of "none" as
Index: lyx_main.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyx_main.C,v
retrieving revision 1.124
diff -u -p -r1.124 lyx_main.C
--- lyx_main.C  7 Oct 2002 13:31:37 -0000       1.124
+++ lyx_main.C  9 Oct 2002 14:02:00 -0000
@@ -577,13 +577,13 @@ void LyX::queryUserLyXDir(bool explicit_
        FileInfo fileInfo(user_lyxdir);
        if (fileInfo.isOK() && fileInfo.isDir()) {
                first_start = false;
-               Path p(user_lyxdir);
                FileInfo script(configure_script);
-               FileInfo defaults("lyxrc.defaults");
-               if (!defaults.isOK()
-                   || defaults.getModificationTime() < script.getModificationTime()) {
+               FileInfo defaults(AddName(user_lyxdir, "lyxrc.defaults"));
+               if (defaults.isOK() && script.isOK()
+                   && defaults.getModificationTime() < script.getModificationTime()) {
                        lyxerr << _("LyX: reconfiguring user directory")
                               << endl;
+                       Path p(user_lyxdir);
                        ::system(configure_script.c_str());
                        lyxerr << "LyX: " << _("Done!") << endl;
                }

Reply via email to