]> git.lyx.org Git - lyx.git/commitdiff
Two patches from Claus; two patches from Andre' (with additional bugfixes)
authorJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 28 Apr 2000 11:18:04 +0000 (11:18 +0000)
committerJean-Marc Lasgouttes <lasgouttes@lyx.org>
Fri, 28 Apr 2000 11:18:04 +0000 (11:18 +0000)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@703 a592a061-630c-0410-9148-cb99ea01b6c8

ChangeLog
NEWS
intl/loadmsgcat.c
lib/lyxrc.example
src/buffer.C
src/buffer.h
src/lyx_gui.C
src/lyx_gui.h
src/lyx_main.C
src/lyxfunc.C
src/lyxfunc.h

index 1d67c653c588b045f48b4deda4cfb789eb445cf4..097c239464914e03246133c06b0f1294ab0b9165 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,33 @@
+2000-04-27  Claus Hentschel <claus.hentschel@mbau.fh-hannover.de>
+
+       * intl/loadmsgcat.c (_nl_load_domain): pass O_BINARY as flag to
+       open under CYGWIN 
+
+       * lib/lyxrc.example: smallish typo in description of
+       \view_dvi_paper_option 
+
+2000-04-26  André Pönitz <poenitz@mathematik.tu-chemnitz.de>
+
+       * src/lyxfunc.h:
+       * src/lyxfunc.C: doImportHelper to factor out common code of the
+       various import methods. New functions doImportASCIIasLines,
+       doImportASCIIasParagraphs, doImportLaTeX, doImportNoWeb,
+       doImportLinuxDoc  for the  format specific parts.
+
+       * buffer.h:
+       * buffer.C: Dispatch  returns now a bool to indicate success
+
+       * lyx_gui.h:
+       * lyx_gui.C: Add getLyXView() for member access
+
+       * lyx_main.C: Change logic for batch commands: First try
+       Buffer::Dispatch (possibly without GUI), if that fails, use
+       LyXFunc::Dispatch
+
+       * lyx_main.C: Add support for --import command line switch.
+       Now 'lyx --import ascii file.txt' opens the GUI with file.txt loaded.
+       Available Formats: Everything  accepted by 'buffer-import <format>'
+
 2000-04-27  Lars Gullik Bjønnes  <larsbj@lyx.org>
 
        * src/lyx_gui.C (create_forms): small oneliner from Garst to have
diff --git a/NEWS b/NEWS
index e708f0b3c1c2d949b6977a2e3fa304a293f656ea..7dbb8034d86f18099a1263b86227f118abdae647 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -133,7 +133,7 @@ branch (which is now extinct). So while on the surface this version is
 very similar to version 1.0.4, many things happened under the hood. As
 a consequence of this: expect that some new bugs have crept in.
 
-User visible changes in lyx 1.0.1: 
+User visible changes in lyx 1.1.1: 
 
 - New export to HTML feature
 
index 515892dfb867d4bf8933d0289a2656ab23cd52b7..48e807324225af3bcb6690a3b571871a8e6c69d1 100644 (file)
@@ -85,7 +85,11 @@ _nl_load_domain (domain_file)
     return;
 
   /* Try to open the addressed file.  */
+#ifdef CYGWIN32
+  fd = open (domain_file->filename, O_RDONLY | O_BINARY);
+#else
   fd = open (domain_file->filename, O_RDONLY);
+#endif
   if (fd == -1)
     return;
 
index 7b38b65402b2a073769af83e413941423d60a21c..8541debdebdba5c59bab085664ae596047db7be8 100644 (file)
 # not append the -paper option to the dvi command at all. This case is
 # especially useful when viewing your documents on Windows with yap,
 # because yap does not allow a command line option for the paper size.
-#\view_dvi_paper "" 
+#\view_dvi_paper_option "" 
 
 # LyX assumes that the default papersize should be usletter.  If this is not
 # true for your site, use the next line to specify usletter, legal,
index ff679f23e004a7f1821254e29f48290e46ff916f..1509fb19fb6996a6e9f86fa8bf603ea760dbd3bf 100644 (file)
@@ -3843,28 +3843,28 @@ void Buffer::markDepClean(string const & name)
 }
 
 
-void Buffer::Dispatch(string const & command)
+bool Buffer::Dispatch(string const & command)
 {
        // Split command string into command and argument
        string cmd, line = frontStrip(command);
        string arg = strip(frontStrip(split(line, cmd, ' ')));
 
-       Dispatch(lyxaction.LookupFunc(cmd.c_str()), arg.c_str());
+       return Dispatch(lyxaction.LookupFunc(cmd.c_str()), arg.c_str());
 }
 
 
-void Buffer::Dispatch(int action, string const & argument)
+bool Buffer::Dispatch(int action, string const & argument)
 {
+       bool dispatched = true;
        switch (action) {
                case LFUN_EXPORT: 
                        MenuExport(this, argument);
                        break;
 
                default:
-                       lyxerr << "A truly unknown func!" << endl;
-               break;
-
-       } // end of switch
+                       dispatched = false;
+       }
+       return dispatched;
 }
 
 
index 66acf79efb10dabe2d6e7beed236fa910ed4f7d3..32f669e59acb8021c94f9a5c34719d2d8eb3bcfc 100644 (file)
@@ -80,10 +80,10 @@ public:
        /** high-level interface to buffer functionality
            This function parses a command string and executes it
        */
-       void Dispatch(string const & command);
+       bool Dispatch(string const & command);
 
        /// Maybe we know the function already by number...
-       void Dispatch(int ac, string const & argument);
+       bool Dispatch(int ac, string const & argument);
 
        /// should be changed to work for a list.
        void resize() {
index fe3f6a9a704d8add408e8ed3e137481f817c8660..4a67a760a8c6e2d262d6fa1c9e79e19d16d124fc 100644 (file)
@@ -630,3 +630,8 @@ void LyXGUI::regBuf(Buffer * b)
 {
        lyxViews->view()->buffer(b);
 }
+
+LyXView * LyXGUI::getLyXView() const
+{
+       return lyxViews;
+}
index 637cfdb2c3677eec602890df07526ed621a70d6a..55968e63423fd6c3b913ff9ae1a59768cfeb7df3 100644 (file)
@@ -52,8 +52,12 @@ public:
          */
        void init();
 
-       /// Register the buffer with the first fount LyXView in lyxViews
+       /// Register the buffer with the first found LyXView in lyxViews
        void regBuf(Buffer*);
+
+       /// Access to (first?) LyXView
+       LyXView * getLyXView() const;
+       
        //@}
 private:
        /**@name Construcor */
index cc5e5d1a7ccfe8a15be69df252727f3610fd2625..500200cfd67ccb82813fc4347b77a8cb7809c963 100644 (file)
@@ -16,6 +16,8 @@
 #include "version.h"
 #include "lyx_main.h"
 #include "lyx_gui.h"
+#include "LyXView.h"
+#include "lyxfunc.h"
 #include "lyx_gui_misc.h"
 #include "lyxrc.h"
 #include "support/path.h"
@@ -121,13 +123,28 @@ LyX::LyX(int * argc, char * argv[])
        }
 
        // Execute batch commands if available
-       if (!batch_command.empty() && last_loaded) {
+       if (!batch_command.empty()) {
                lyxerr << "About to handle -x '" << batch_command << "'" << endl;
-               //Buffer buffer("Script Buffer");
-               //buffer.Dispatch(batch_command);
-               last_loaded->Dispatch(batch_command);
-               lyxerr << "We are done!" << endl;
-               return; // Maybe we could do something more clever than aborting..
+
+               // no buffer loaded, create one
+               if (!last_loaded)
+                       last_loaded = bufferlist.newFile("tmpfile", string());
+
+               // try to dispatch to last loaded buffer first
+               bool dispatched = last_loaded->Dispatch(batch_command);
+
+               // if this was successful, return. 
+               // Maybe we could do something more clever than aborting...
+               if (dispatched) {
+                       lyxerr << "We are done!" << endl;
+                       return;
+               }
+
+               // otherwise, let the GUI handle the batch command
+               lyxGUI->regBuf(last_loaded);
+               lyxGUI->getLyXView()->getLyXFunc()->Dispatch(batch_command);
+
+               // fall through...
        }
        
        // Let the ball begin...
@@ -573,7 +590,27 @@ bool LyX::easyParse(int * argc, char * argv[])
                                            "ps...] after ")
                                       << arg << _(" switch!") << endl;
                }
+
+               else if (arg == "--import") {
+                       if (i + 1 < *argc) {
+                               string type(argv[i+1]);
+                               string file(argv[i+2]);
+
+                               (*argc) -= 3;
+                               for (int j = i; j < (*argc); ++j)
+                                       argv[j] = argv[j + 3];
+                               --i; // After shift, check this number again.
+       
+                               batch_command = "buffer-import " + type + " " + file;
+                               cerr << "batch_command: " << batch_command << endl;
+
+                       } else
+                               lyxerr << _("Missing type [eg latex, "
+                                           "ps...] after ")
+                                      << arg << _(" switch!") << endl;
+               }
        }
+
        return gui;
 }
 
index fd1b192535f68308eba197b37a761c75bc543750..228ad30895ac14e7c02e13e6e04e0736dd30a6c8 100644 (file)
@@ -744,7 +744,7 @@ string LyXFunc::Dispatch(int ac,
                                            MakeDisplayPath(owner->buffer()->fileName()),
                                            "...");
                MenuWrite(owner->buffer());
-               //owner->getMiniBuffer()->
+               //owner->getMiniBuffer()-> {
                //      Set(_("Document saved as"),
                //          MakeDisplayPath(owner->buffer()->fileName()));
                //} else {
@@ -797,30 +797,8 @@ string LyXFunc::Dispatch(int ac,
                break;
 
        case LFUN_IMPORT:
-       {
-               //needs argument as string
-               string imtyp = argument;
-               
-               // latex
-               if (imtyp == "latex") {
-                       doImportLaTeX(false);
-               }
-               // ascii
-               else if (imtyp == "ascii") {
-                       doImportASCII(false);
-               } else if (imtyp == "asciiparagraph") {
-                       doImportASCII(true);
-                       // noweb
-               } else if (imtyp == "noweb") {
-                       doImportLaTeX(true);
-               } else if (imtyp == "linuxdoc") {
-                       doImportLinuxDoc();
-               } else {
-                       setErrorMessage(string(N_("Unknown import type: "))
-                                       + imtyp);
-               }
+               doImport(argument);
                break;
-       }
                
        case LFUN_QUIT:
                QuitLyX();
@@ -2880,53 +2858,66 @@ void LyXFunc::MenuOpen()
        }
 }
 
+// returns filename if file must be imported,
+// empty string if either file not found or already loaded
+// checks for running without gui are missing.
 
-void LyXFunc::doImportASCII(bool linorpar)
+void LyXFunc::doImportHelper(
+       string const & file,          // filename (possibly empty)
+       string const & text,          // info when asking for filename
+       string const & pattern,       // filetype
+       bool func(BufferView *, string const &)     // the real import function
+)
 {
-       string initpath = lyxrc.document_path;
-       LyXFileDlg fileDlg;
-  
-       if (owner->view()->available()) {
-               string trypath = owner->buffer()->filepath;
-               // If directory is writeable, use this as default.
-               if (IsDirWriteable(trypath) == 1)
-                       initpath = trypath;
-       }
+       string filename = file;
 
-       // launches dialog
-       ProhibitInput(owner->view());
-       fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
-       fileDlg.SetButton(1, _("Examples"), 
-                         AddPath(system_lyxdir, "examples"));
-       string filename = fileDlg.Select(_("Select ASCII file to Import"),
-                                        initpath, "*.txt");
-       AllowInput(owner->view());
+       if (filename.empty()) { // need user interaction
+               string initpath = lyxrc.document_path;
+               LyXFileDlg fileDlg;
+               
+               if (owner->view()->available()) {
+                       string trypath = owner->buffer()->filepath;
+                       // If directory is writeable, use this as default.
+                       if (IsDirWriteable(trypath) == 1)
+                               initpath = trypath;
+               }
+
+               // launches dialog
+               ProhibitInput(owner->view());
+               fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
+               fileDlg.SetButton(1, _("Examples"), 
+                                       AddPath(system_lyxdir, "examples"));
+               filename = fileDlg.Select(text, initpath, pattern);
+               AllowInput(owner->view());
  
-       // check selected filename
-       if (filename.empty()) {
-               owner->getMiniBuffer()->Set(_("Canceled."));
-               return;
+               // check selected filename
+               if (filename.empty()) 
+                       owner->getMiniBuffer()->Set(_("Canceled."));
        }
 
+       // still no filename? abort
+       if (filename.empty()) 
+               return;
+
        // get absolute path of file
        filename = MakeAbsPath(filename);
 
-       string s = ChangeExtension(filename, ".lyx", false);
+       string lyxfile = ChangeExtension(filename, ".lyx", false);
 
        // Check if the document already is open
-       if (bufferlist.exists(s)) {
+       if (bufferlist.exists(lyxfile)) {
                switch(AskConfirmation(_("Document is already open:"), 
-                                      MakeDisplayPath(s, 50),
+                                      MakeDisplayPath(lyxfile, 50),
                                       _("Do you want to close that document now?\n"
                                         "('No' will just switch to the open version)")))
                        {
                        case 1: // Yes: close the document
-                               if (!bufferlist.close(bufferlist.getBuffer(s)))
+                               if (!bufferlist.close(bufferlist.getBuffer(lyxfile)))
                                // If close is canceled, we cancel here too.
                                        return;
                                break;
                        case 2: // No: switch to the open document
-                               owner->view()->buffer(bufferlist.getBuffer(s));
+                               owner->view()->buffer(bufferlist.getBuffer(lyxfile));
                                return;
                        case 3: // Cancel: Do nothing
                                owner->getMiniBuffer()->Set(_("Canceled."));
@@ -2935,193 +2926,66 @@ void LyXFunc::doImportASCII(bool linorpar)
        }
 
        // Check if a LyX document by the same root exists in filesystem
-       FileInfo f(s, true);
+       FileInfo f(lyxfile, true);
        if (f.exist() && !AskQuestion(_("A document by the name"), 
-                                     MakeDisplayPath(s),
+                                     MakeDisplayPath(lyxfile),
                                      _("already exists. Overwrite?"))) {
                owner->getMiniBuffer()->Set(_("Canceled."));
                return;
        }
+       // filename should be valid now
 
-       owner->view()->buffer(bufferlist.newFile(s, string()));
-       owner->getMiniBuffer()->Set(_("Importing ASCII file"),
-                                   MakeDisplayPath(filename), "...");
-       // Insert ASCII file
-       InsertAsciiFile(owner->view(), filename, linorpar);
-       owner->getMiniBuffer()->Set(_("ASCII file "),
-                                   MakeDisplayPath(filename),
-                                   _("imported."));
-}
+       // notify user of import ahead
+       string displaypath = MakeDisplayPath(filename);
+       owner->view()->buffer(bufferlist.newFile(lyxfile, string()));
+       owner->getMiniBuffer()->Set(_("Importing"), displaypath, "...");
 
+       // call real importer
+       bool result = func(owner->view(), filename);
 
-void LyXFunc::doImportLaTeX(bool isnoweb)
-{
-       string initpath = lyxrc.document_path;
-       LyXFileDlg fileDlg;
-  
-       if (owner->view()->available()) {
-               string trypath = owner->buffer()->filepath;
-               // If directory is writeable, use this as default.
-               if (IsDirWriteable(trypath) == 1)
-                       initpath = trypath;
-       }
-
-       // launches dialog
-       ProhibitInput(owner->view());
-       fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
-       fileDlg.SetButton(1, _("Examples"), 
-                         AddPath(system_lyxdir, "examples"));
-       string filename;
-       if (isnoweb) {
-               filename = fileDlg.Select(_("Select Noweb file to Import"),
-                                         initpath, "*.nw");
-       } else {
-               filename = fileDlg.Select(_("Select LaTeX file to Import"),
-                                         initpath, "*.tex");
-       }
-       
-       AllowInput(owner->view());
-       // check selected filename
-       if (filename.empty()) {
-               owner->getMiniBuffer()->Set(_("Canceled."));
-               return;
-       }
-
-       // get absolute path of file
-       filename = MakeAbsPath(filename);
-
-       // Check if the document already is open
-       string LyXfilename = ChangeExtension(filename, ".lyx", false);
-       if (bufferlist.exists(LyXfilename)){
-               switch(AskConfirmation(_("Document is already open:"), 
-                                      MakeDisplayPath(LyXfilename, 50),
-                                      _("Do you want to close that document now?\n"
-                                        "('No' will just switch to the open version)")))
-                       {
-                       case 1: // Yes: close the document
-                               if (!bufferlist.close(bufferlist.getBuffer(LyXfilename)))
-                               // If close is canceled, we cancel here too.
-                                       return;
-                               break;
-                       case 2: // No: switch to the open document
-                               owner->view()->buffer(
-                                       bufferlist.getBuffer(LyXfilename));
-                               return;
-                       case 3: // Cancel: Do nothing
-                               owner->getMiniBuffer()->Set(_("Canceled."));
-                               return;
-                       }
-       }
-
-       // Check if a LyX document by the same root exists in filesystem
-       FileInfo f(LyXfilename, true);
-       if (f.exist() && !AskQuestion(_("A document by the name"), 
-                                     MakeDisplayPath(LyXfilename),
-                                     _("already exists. Overwrite?"))) {
-               owner->getMiniBuffer()->Set(_("Canceled."));
-               return;
-       }
-
-       // loads document
-       Buffer * openbuf;
-       if (!isnoweb) {
-               owner->getMiniBuffer()->Set(_("Importing LaTeX file"),
-                                           MakeDisplayPath(filename), "...");
-               ImportLaTeX myImport(filename);
-               openbuf = myImport.run();
-       } else {
-               owner->getMiniBuffer()->Set(_("Importing Noweb file"),
-                                           MakeDisplayPath(filename), "...");
-               ImportNoweb myImport(filename);
-               openbuf = myImport.run();
-       }
-       if (openbuf) {
-               owner->view()->buffer(openbuf);
-               owner->getMiniBuffer()->Set(isnoweb ?
-                                           _("Noweb file ") : _("LateX file "),
-                                           MakeDisplayPath(filename),
-                                           _("imported."));
-       } else {
-               owner->getMiniBuffer()->Set(isnoweb ?
-                                           _("Could not import Noweb file") :
-                                           _("Could not import LaTeX file"),
-                                           MakeDisplayPath(filename));
-       }
+       // we are done
+       if (result)
+               owner->getMiniBuffer()->Set(displaypath, _("imported."));
+       else
+               owner->getMiniBuffer()->Set(displaypath, _(": import failed."));
 }
 
-
-void LyXFunc::doImportLinuxDoc()
+static
+bool doImportASCIIasLines(BufferView * view, string const & filename)
 {
-       string initpath = lyxrc.document_path;
-       LyXFileDlg fileDlg;
-  
-       if (owner->view()->available()) {
-               string trypath = owner->buffer()->filepath;
-               // If directory is writeable, use this as default.
-               if (IsDirWriteable(trypath) == 1)
-                       initpath = trypath;
-       }
-
-       // launches dialog
-       ProhibitInput(owner->view());
-       fileDlg.SetButton(0, _("Documents"), lyxrc.document_path);
-       fileDlg.SetButton(1, _("Examples"), 
-                         AddPath(system_lyxdir, "examples"));
-
-       string filename = fileDlg.Select(_("Select LinuxDoc file to Import"),
-                                         initpath, "*.sgml");
-       
-       AllowInput(owner->view());
-       // check selected filename
-       if (filename.empty()) {
-               owner->getMiniBuffer()->Set(_("Canceled."));
-               return;
-       }
-
-       // get absolute path of file
-       filename = MakeAbsPath(filename);
+       InsertAsciiFile(view, filename, false);
+       return true;
+}
 
-       // Check if the document already is open
-       string LyXfilename = ChangeExtension(filename, ".lyx", false);
-       if (bufferlist.exists(LyXfilename)){
-               switch(AskConfirmation(_("Document is already open:"), 
-                                      MakeDisplayPath(LyXfilename, 50),
-                                      _("Do you want to close that document now?\n"
-                                        "('No' will just switch to the open version)")))
-                       {
-                       case 1: // Yes: close the document
-                               if (!bufferlist.close(bufferlist.getBuffer(LyXfilename)))
-                               // If close is canceled, we cancel here too.
-                                       return;
-                               break;
-                       case 2: // No: switch to the open document
-                               owner->view()->buffer(
-                                       bufferlist.getBuffer(LyXfilename));
-                               return;
-                       case 3: // Cancel: Do nothing
-                               owner->getMiniBuffer()->Set(_("Canceled."));
-                               return;
-                       }
-       }
+static
+bool doImportASCIIasParagraphs(BufferView * view, string const & filename)
+{
+       InsertAsciiFile(view, filename, true);
+       return true;
+}
 
-       // Check if a LyX document by the same root exists in filesystem
-       FileInfo f(LyXfilename, true);
-       if (f.exist() && !AskQuestion(_("A document by the name"), 
-                                     MakeDisplayPath(LyXfilename),
-                                     _("already exists. Overwrite?"))) {
-               owner->getMiniBuffer()->Set(_("Canceled."));
-               return;
-       }
+static
+bool doImportLaTeX(BufferView *, string const & filename)
+{
+       ImportLaTeX myImport(filename);
+       Buffer * openbuf = myImport.run();
+       return openbuf != NULL;         
+}
 
-       // loads document
-       owner->getMiniBuffer()->Set(_("Importing LinuxDoc file"),
-                                   MakeDisplayPath(filename), "...");
+static
+bool doImportNoweb(BufferView *, string const & filename)
+{
+       ImportNoweb myImport(filename);
+       Buffer * openbuf = myImport.run();
+       return openbuf != NULL;         
+}
 
+static
+bool doImportLinuxDoc(BufferView *, string const & filename)
+{
        // run sgml2lyx
        string tmp = lyxrc.linuxdoc_to_lyx_command + filename;
-        Systemcalls one;
+       Systemcalls one;
        Buffer * buf = 0;
 
        int result = one.startscript(Systemcalls::System, tmp);
@@ -3129,14 +2993,9 @@ void LyXFunc::doImportLinuxDoc()
                string filename = ChangeExtension(filename, ".lyx", false);
                // File was generated without problems. Load it.
                buf = bufferlist.loadLyXFile(filename);
-               owner->view()->buffer(buf);
-               owner->getMiniBuffer()->Set(_("LinuxDoc file "),
-                                           MakeDisplayPath(filename),
-                                           _("imported."));
-       } else {
-               owner->getMiniBuffer()->Set(_("Could not import LinuxDoc file"),
-                                           MakeDisplayPath(filename));
        }
+
+       return result == 0;
 }
 
 
@@ -3192,6 +3051,36 @@ void LyXFunc::MenuInsertLyXFile(string const & filen)
        }
 }
 
+void LyXFunc::doImport(string const & argument)
+{
+       string type;
+       string filename = split(argument, type, ' ');
+       lyxerr.debug() << "LyXFunc::doImport: " << type 
+                      << " file: " << filename << endl;
+
+       if (type == "latex") 
+               doImportHelper(filename,
+                              _("Select LaTeX file to import"), "*.tex", 
+                              doImportLaTeX);
+       else if (type == "ascii") 
+               doImportHelper(filename,
+                              _("Select ASCII file to import"), "*.txt", 
+                              doImportASCIIasLines);
+       else if (type == "asciiparagraph") 
+               doImportHelper(filename,
+                              _("Select ASCII file to import"), "*.txt", 
+                              doImportASCIIasParagraphs);
+       else if (type == "noweb") 
+               doImportHelper(filename,
+                              _("Select NoWeb file to import"), "*.nw", 
+                              doImportNoweb);
+       else if (type == "linuxdoc") 
+               doImportHelper(filename,
+                              _("Select LinuxDoc file to import"), "*.doc", 
+                              doImportLinuxDoc);
+       else 
+               setErrorMessage(string(N_("Unknown import type: ")) + type);
+}
 
 void LyXFunc::reloadBuffer()
 {
index fb88aa29761a47999f661e2181855cfb23404d52..24a0456f17781298b6d190762482b2fe6ac9c2a9 100644 (file)
@@ -110,13 +110,9 @@ private:
        void MenuOpen();
 
        ///
-       void doImportLaTeX(bool);
-
-       ///
-       void doImportASCII(bool);
-
-       ///
-       void doImportLinuxDoc();
+       void doImport(string const &);
+       void doImportHelper(string const &, string const &, string const &,
+               bool func(BufferView *, string const &) );
 
        ///
        void MenuInsertLyXFile(string const &);