]> git.lyx.org Git - lyx.git/blobdiff - src/Format.cpp
No need for an extra icon
[lyx.git] / src / Format.cpp
index a4882f6c63792185738ee40a80f91d7e06a47b27..a6727a2d8128a8c67e670912ad559b0d66b901f8 100644 (file)
@@ -337,6 +337,9 @@ string guessFormatFromContents(FileName const & fn)
                        // autodetect pdf format for graphics inclusion
                        format = "pdf6";
 
+               else if (contains(str, " EMF"))
+                       format = "emf";
+
                else if (contains(str, "PNG"))
                        format = "png";
 
@@ -679,6 +682,28 @@ bool Formats::view(Buffer const & buffer, FileName const & filename,
 
        string command = format->viewer();
 
+       // Escape backslashes if not already in double or single quotes.
+       // We cannot simply quote the whole command as there may be arguments.
+       if (contains(command, '\\')) {
+               bool inquote1 = false;
+               bool inquote2 = false;
+               string::iterator cit = command.begin();
+               for (; cit != command.end(); ++cit) {
+                       switch (*cit) {
+                       case '"':
+                               inquote1 = !inquote1;
+                               break;
+                       case '\'':
+                               inquote2 = !inquote2;
+                               break;
+                       case '\\':
+                               if (!inquote1 && !inquote2)
+                                       cit = ++command.insert(cit, '\\');
+                               break;
+                       }
+               }
+       }
+
        if (format_name == "dvi" &&
            !lyxrc.view_dvi_paper_option.empty()) {
                string paper_size = buffer.params().paperSizeName(BufferParams::XDVI);