X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFormat.cpp;h=a6727a2d8128a8c67e670912ad559b0d66b901f8;hb=c57d04908f9746a3923c36c0f41e1e23c6043550;hp=ab09d4a6ded716807baa3dffcb322fa56db5dc8a;hpb=db9c8c6d0229eccdcc28d55eead018d9e40347a4;p=lyx.git diff --git a/src/Format.cpp b/src/Format.cpp index ab09d4a6de..a6727a2d81 100644 --- a/src/Format.cpp +++ b/src/Format.cpp @@ -682,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);