+
+Buffer * loadIfNeeded(FileName const & fname)
+{
+ Buffer * buffer = theBufferList().getBuffer(fname);
+ if (!buffer) {
+ if (!fname.exists())
+ return 0;
+
+ buffer = theBufferList().newBuffer(fname.absFileName());
+ if (!buffer)
+ // Buffer creation is not possible.
+ return 0;
+
+ if (buffer->loadLyXFile(fname) != Buffer::ReadSuccess) {
+ //close the buffer we just opened
+ theBufferList().release(buffer);
+ return 0;
+ }
+ }
+ return buffer;
+}
+
+