Bo Peng wrote:
This would give two modes of operations:
- directory-in-a-zip: the most transparent for users. Whether we
actually unpack everytime or unpack on-demand from the zip is an
implementation detail.
This is more or less my idea.
Right. The only difference between this approach and the one you
implemented has to do with out of tree files. And as I've said in my
other message, with the changes forced by security issues, even that
issue has shrunk to near nothingness. The only real question is where to
store the information about the original location of the file, so you
can do the "update from external file" thing. Whether there is just a
copy in the bundle isn't the issue. Your version has a copy in the
bundle, too. But you keep a kind of link to the original file by storing
the original pathname in the LyX file. Jose's idea was that this isn't
cross-platform, so we should store it somewhere else. But you keep the
connection---on the only machine where it works---either way.
Now, why prefer Jose's way? Well, it makes sense to store
machine-specific information in the session file. But the more important
point is that going that way dramatically simplifies the code. The
"bundling" code will consist of but a few pieces: The zip-unzip stuff;
the copy-to-bundle stuff; the session-related stuff that keeps
information about the original file; and the update business. The insets
themselves hardly need to be touched (from the old code).
rh