]> git.lyx.org Git - features.git/commitdiff
Do not try to load or copy included files when we are in a comment
authorRichard Heck <rgheck@lyx.org>
Thu, 21 Feb 2013 16:54:59 +0000 (11:54 -0500)
committerRichard Heck <rgheck@lyx.org>
Thu, 21 Feb 2013 16:54:59 +0000 (11:54 -0500)
or doing a dryrun. We skipped some of this before, but not all of it,
which led to bug #8557.

src/insets/InsetInclude.cpp
status.20x

index 049039a5cb3dff2f79023ad68b501aedd9ae7468..119b11f71cc4fd173c1a53dd91af48ac542bd317 100644 (file)
@@ -528,6 +528,67 @@ void InsetInclude::latex(otexstream & os, OutputParams const & runparams) const
        }
 
        FileName const writefile(makeAbsPath(mangled, masterBuffer->temppath()));
+       string const tex_format = flavor2format(runparams.flavor);
+
+       switch (type(params())) {
+       case VERB:
+       case VERBAST: {
+               incfile = latex_path(incfile);
+               // FIXME UNICODE
+               os << '\\' << from_ascii(params().getCmdName()) << '{'
+                  << from_utf8(incfile) << '}';
+               break;
+       }
+       case INPUT: {
+               runparams.exportdata->addExternalFile(tex_format, writefile,
+                                                     exportfile);
+
+               // \input wants file with extension (default is .tex)
+               if (!isLyXFileName(included_file.absFileName())) {
+                       incfile = latex_path(incfile);
+                       // FIXME UNICODE
+                       os << '\\' << from_ascii(params().getCmdName())
+                          << '{' << from_utf8(incfile) << '}';
+               } else {
+               incfile = changeExtension(incfile, ".tex");
+               incfile = latex_path(incfile);
+                       // FIXME UNICODE
+                       os << '\\' << from_ascii(params().getCmdName())
+                          << '{' << from_utf8(incfile) <<  '}';
+               }
+               break;
+       }
+       case LISTINGS: {
+               os << '\\' << from_ascii(params().getCmdName());
+               string const opt = to_utf8(params()["lstparams"]);
+               // opt is set in QInclude dialog and should have passed validation.
+               InsetListingsParams params(opt);
+               if (!params.params().empty())
+                       os << "[" << from_utf8(params.params()) << "]";
+               os << '{'  << from_utf8(incfile) << '}';
+               break;
+       }
+       case INCLUDE: {
+               runparams.exportdata->addExternalFile(tex_format, writefile,
+                                                     exportfile);
+
+               // \include don't want extension and demands that the
+               // file really have .tex
+               incfile = changeExtension(incfile, string());
+               incfile = latex_path(incfile);
+               // FIXME UNICODE
+               os << '\\' << from_ascii(params().getCmdName()) << '{'
+                  << from_utf8(incfile) << '}';
+               break;
+       }
+       case NONE:
+               break;
+       }
+
+       if (runparams.inComment || runparams.dryrun)
+               // Don't try to load or copy the file if we're
+               // in a comment or doing a dryrun
+               return;
 
        if (!runparams.nice)
                incfile = mangled;
@@ -548,11 +609,7 @@ void InsetInclude::latex(otexstream & os, OutputParams const & runparams) const
        LYXERR(Debug::LATEX, "exportfile:" << exportfile);
        LYXERR(Debug::LATEX, "writefile:" << writefile);
 
-       string const tex_format = flavor2format(runparams.flavor);
-       if (runparams.inComment || runparams.dryrun) {
-               //Don't try to load or copy the file if we're
-               //in a comment or doing a dryrun
-       } else if (isInputOrInclude(params()) &&
+       if (isInputOrInclude(params()) &&
                 isLyXFileName(included_file.absFileName())) {
                // if it's a LyX file and we're inputting or including,
                // try to load it so we can write the associated latex
@@ -676,61 +733,6 @@ void InsetInclude::latex(otexstream & os, OutputParams const & runparams) const
                        }
                }
        }
-
-       switch (type(params())) {
-       case VERB:
-       case VERBAST: {
-               incfile = latex_path(incfile);
-               // FIXME UNICODE
-               os << '\\' << from_ascii(params().getCmdName()) << '{'
-                  << from_utf8(incfile) << '}';
-               break;
-       } 
-       case INPUT: {
-               runparams.exportdata->addExternalFile(tex_format, writefile,
-                                                     exportfile);
-
-               // \input wants file with extension (default is .tex)
-               if (!isLyXFileName(included_file.absFileName())) {
-                       incfile = latex_path(incfile);
-                       // FIXME UNICODE
-                       os << '\\' << from_ascii(params().getCmdName())
-                          << '{' << from_utf8(incfile) << '}';
-               } else {
-               incfile = changeExtension(incfile, ".tex");
-               incfile = latex_path(incfile);
-                       // FIXME UNICODE
-                       os << '\\' << from_ascii(params().getCmdName())
-                          << '{' << from_utf8(incfile) <<  '}';
-               }
-               break;
-       } 
-       case LISTINGS: {
-               os << '\\' << from_ascii(params().getCmdName());
-               string const opt = to_utf8(params()["lstparams"]);
-               // opt is set in QInclude dialog and should have passed validation.
-               InsetListingsParams params(opt);
-               if (!params.params().empty())
-                       os << "[" << from_utf8(params.params()) << "]";
-               os << '{'  << from_utf8(incfile) << '}';
-               break;
-       } 
-       case INCLUDE: {
-               runparams.exportdata->addExternalFile(tex_format, writefile,
-                                                     exportfile);
-
-               // \include don't want extension and demands that the
-               // file really have .tex
-               incfile = changeExtension(incfile, string());
-               incfile = latex_path(incfile);
-               // FIXME UNICODE
-               os << '\\' << from_ascii(params().getCmdName()) << '{'
-                  << from_utf8(incfile) << '}';
-               break;
-       }
-       case NONE:
-               break;
-       }
 }
 
 
index 4820660e4bd8f8501a3eb5ae495e32def7d4a495..4e16788d60ecb0d3ecfacef226230aa81be3d678 100644 (file)
@@ -142,6 +142,8 @@ What's new
 - Do not create an empty environment variable LC_ALL when launching
   external processes (bug 8537).
 
+- Do not try to process included files when viewing source (bug 8557).
+
 
 * DOCUMENTATION AND LOCALIZATION