]> git.lyx.org Git - lyx.git/blobdiff - src/lyx_main.C
Change the latex font names in order to match the names of type1inst.
[lyx.git] / src / lyx_main.C
index dae669925425512ec5ce4001d353e2d94a709714..3b6e3a7ba62513a93945c3cf5b755c7ab81cf62d 100644 (file)
@@ -245,14 +245,15 @@ void LyX::init(bool gui)
 
        string binpath = os::binpath();
        string binname = os::binname();
-       string fullbinpath = binpath;
-
+       string fullbinname = MakeAbsPath(binname, binpath);
+       
        if (binpath.empty()) {
                lyxerr << _("Warning: could not determine path of binary.")
                       << "\n"
                       << _("If you have problems, try starting LyX with an absolute path.")
                       << endl;
        }
+       lyxerr[Debug::INIT] << "Name of binary: " << binname << endl;
        lyxerr[Debug::INIT] << "Path of binary: " << binpath << endl;
 
        //
@@ -286,30 +287,34 @@ void LyX::init(bool gui)
                searchpath += lyxdir + ';';
        }
 
-       // <path of binary>/TOP_SRCDIR/lib
-       build_lyxdir = MakeAbsPath("../lib", binpath);
-       if (!FileSearch(build_lyxdir, "lyxrc.defaults").empty()) {
-               searchpath += MakeAbsPath(AddPath(TOP_SRCDIR, "lib"),
-                                         binpath) + ';';
-               lyxerr[Debug::INIT] << "Checking whether LyX is run in "
-                       "place... yes" << endl;
-       } else {
-               lyxerr[Debug::INIT]
-                       << "Checking whether LyX is run in place... no"
-                       << endl;
-               build_lyxdir.erase();
+       string fullbinpath = binpath;
+       FileInfo file(fullbinname, true);
+       if (file.isLink()) {
+               lyxerr[Debug::INIT] << "binary is a link" << endl;
+               string link;
+               if (LyXReadLink(fullbinname, link)) {
+                       // Path of binary/../share/name of binary/
+                       searchpath += NormalizePath(AddPath(binpath,
+                                                           "../share/") 
+                                                   + OnlyFilename(binname));
+                       searchpath += ';';
+                       fullbinpath = link;
+                       binpath = MakeAbsPath(OnlyPath(fullbinpath));
+               }
        }
-
+       
         bool followlink;
        do {
-         // Path of binary/../share/name of binary/
+               // Path of binary/../share/name of binary/
                searchpath += NormalizePath(AddPath(binpath, "../share/") + 
                      OnlyFilename(binname)) + ';';
 
-         // Follow Symlinks
+               // Follow Symlinks
                FileInfo file(fullbinpath, true);
                followlink = file.isLink();
                if (followlink) {
+                       lyxerr << " directory " << fullbinpath
+                              << " is a link" << endl;
                        string link;
                        if (LyXReadLink(fullbinpath, link)) {
                                fullbinpath = link;
@@ -321,6 +326,20 @@ void LyX::init(bool gui)
                }
        } while (followlink);
 
+       // <path of binary>/TOP_SRCDIR/lib
+       build_lyxdir = MakeAbsPath("../lib", binpath);
+       if (!FileSearch(build_lyxdir, "lyxrc.defaults").empty()) {
+               searchpath += MakeAbsPath(AddPath(TOP_SRCDIR, "lib"),
+                                         binpath) + ';';
+               lyxerr[Debug::INIT] << "Checking whether LyX is run in "
+                       "place... yes" << endl;
+       } else {
+               lyxerr[Debug::INIT]
+                       << "Checking whether LyX is run in place... no"
+                       << endl;
+               build_lyxdir.erase();
+       }
+
        // Hardcoded dir
        searchpath += LYX_DIR;