]> git.lyx.org Git - lyx.git/blobdiff - src/EmbeddedFiles.cpp
* make it compile
[lyx.git] / src / EmbeddedFiles.cpp
index 73db1e4bda2a021775e1e7bec76672af360d052b..590ecddf8325d2f29d65ddbdb8b67cab14c8d370 100644 (file)
@@ -109,7 +109,7 @@ void EmbeddedFile::saveBookmark(Buffer const * buf, int idx) const
                if (&(*it) == ptr) {
                        // this is basically BufferView::saveBookmark(0)
                        LyX::ref().session().bookmarks().save(
-                               FileName(buf->fileName()),
+                               FileName(buf->absFileName()),
                                it.bottom().pit(),
                                it.bottom().pos(),
                                it.paragraph().id(),
@@ -256,7 +256,7 @@ void EmbeddedFiles::enable(bool flag)
 }
 
 
-void EmbeddedFiles::registerFile(string const & filename,
+EmbeddedFile & EmbeddedFiles::registerFile(string const & filename,
        bool embed, Inset const * inset, string const & inzipName)
 {
        // filename can be relative or absolute, translate to absolute filename
@@ -271,11 +271,12 @@ void EmbeddedFiles::registerFile(string const & filename,
        if (it != file_list_.end()) {
                it->addInset(inset);
                it->validate();
-               return;
+               return *it;
        }
        // try to be more careful
        file_list_.push_back(EmbeddedFile(abs_filename, 
                getInzipName(abs_filename, inzipName), embed, inset));
+       return file_list_.back();
 }
 
 
@@ -467,7 +468,9 @@ void EmbeddedFiles::writeManifest(ostream & os) const
        EmbeddedFiles::EmbeddedFileList::const_iterator it = begin();
        EmbeddedFiles::EmbeddedFileList::const_iterator it_end = end();
        for (; it != it_end; ++it) {
-               if (!it->valid())
+               // only saved 'extra' files. Other embedded files are saved
+               // with insets.
+               if (!it->valid() || it->refCount() > 0)
                        continue;
                // save the relative path
                os << "\\filename "