The source code for late versions of LyX/Mac-1.3.3 and for 1.3.4 was patched to allow reverse DVI search with MacDviX or recent versions of xdvi. LyX/Mac-1.3.5 needs the same patch (included below) for reverse DVI search to work.

Regards,
--

Ronald




--- src/bufferlist.C.orig       Wed Nov 27 05:30:07 2002
+++ src/bufferlist.C    Sat Oct 18 11:38:26 2003
@@ -463,6 +463,15 @@
 }
 
 
+Buffer * BufferList::getBufferFromTmppath(string const & s)
+{
+       BufferStorage::iterator it = bstore.begin();
+       BufferStorage::iterator end = bstore.end();
+       for (; (it != end) && (s.compare((*it)->tmppath, 0, s.rfind('/'))); ++it);
+       return it != bstore.end() ? (*it) : 0;
+}
+
+
 Buffer * BufferList::newFile(string const & name, string tname, bool isNamed)
 {
        // get a free buffer
--- src/bufferlist.h.orig       Thu Mar 21 12:25:09 2002
+++ src/bufferlist.h    Sat Oct 18 11:41:27 2003
@@ -160,6 +160,10 @@
        Buffer * getBuffer(string const &);
        /// returns a pointer to the buffer with the given number.
        Buffer * getBuffer(unsigned int);
+
+       /// returns a pointer to the buffer with the given tmppath
+       Buffer * getBufferFromTmppath(string const & s);
+
 private:
        /// ask to save a buffer on quit
        bool qwriteOne(Buffer * buf, string const & fname,
--- src/lyxfunc.C.orig  Wed Mar 12 06:14:02 2003
+++ src/lyxfunc.C       Sat Oct 18 11:38:26 2003
@@ -1291,12 +1291,19 @@
                istr >> file_name >> row;
                // Must replace extension of the file to be .lyx and get full path
                string const s(ChangeExtension(file_name, ".lyx"));
+               string const tempdirslash = system_tempdir + "/";
 
-               // Either change buffer or load the file
-               if (bufferlist.exists(s)) {
-                       view()->buffer(bufferlist.getBuffer(s));
+               // Check wether the path is in the temp dir
+               if (!s.compare(tempdirslash, 0, tempdirslash.length())) {
+                       lyxerr[Debug::INFO] << "Gotofilerow in tmpdir " << endl;
+                       view()->buffer(bufferlist.getBufferFromTmppath(s));
                } else {
-                       view()->buffer(bufferlist.loadLyXFile(s));
+                       // Either change buffer or load the file
+                       if (bufferlist.exists(s)) {
+                               view()->buffer(bufferlist.getBuffer(s));
+                       } else {
+                               view()->buffer(bufferlist.loadLyXFile(s));
+                       }
                }
 
                view()->setCursorFromRow(row);

Reply via email to