diff --git a/src/Format.cpp b/src/Format.cpp index 74a19eaf23..7e82f9a3b0 100644 --- a/src/Format.cpp +++ b/src/Format.cpp @@ -258,29 +258,28 @@ void Formats::setEditor(string const & name, string const & command) it->setEditor(command); } -bool Formats::viewURL(string const &url){ + +bool Formats::viewURL(docstring const & url) { Format const * format = getFormat("html"); + if (!format) + return false; + string command = libScriptSearch(format->viewer()); if (!contains(command, token_from_format)) command += ' ' + token_from_format; - command = subst(command, token_from_format, quoteName(url)); + command = subst(command, token_from_format, quoteName(to_utf8(url))); LYXERR(Debug::FILES, "Executing command: " << command); - //buffer.message(_("Executing command: ") + from_utf8(command)); Systemcall one; - int const res = one.startscript(Systemcall::DontWait, command); + one.startscript(Systemcall::DontWait, command); - if (res) { - Alert::error(_("Cannot view URL"), - bformat(_("An error occurred whilst running %1$s"), - makeDisplayPath(command, 50))); - return false; - } + // we can't report any sort of error, since we aren't waiting return true; } + bool Formats::view(Buffer const & buffer, FileName const & filename, string const & format_name) const { @@ -340,14 +339,9 @@ bool Formats::view(Buffer const & buffer, FileName const & filename, buffer.message(_("Executing command: ") + from_utf8(command)); Systemcall one; - int const res = one.startscript(Systemcall::DontWait, command); + one.startscript(Systemcall::DontWait, command); - if (res) { - Alert::error(_("Cannot view file"), - bformat(_("An error occurred whilst running %1$s"), - makeDisplayPath(command, 50))); - return false; - } + // we can't report any sort of error, since we aren't waiting return true; } @@ -412,14 +406,9 @@ bool Formats::edit(Buffer const & buffer, FileName const & filename, buffer.message(_("Executing command: ") + from_utf8(command)); Systemcall one; - int const res = one.startscript(Systemcall::DontWait, command); + one.startscript(Systemcall::DontWait, command); - if (res) { - Alert::error(_("Cannot edit file"), - bformat(_("An error occurred whilst running %1$s"), - makeDisplayPath(command, 50))); - return false; - } + // we can't report any sort of error, since we aren't waiting return true; } diff --git a/src/Format.h b/src/Format.h index aa5907fec0..3737f4c452 100644 --- a/src/Format.h +++ b/src/Format.h @@ -143,8 +143,8 @@ public: void setViewer(std::string const & name, std::string const & command); /// void setEditor(std::string const & name, std::string const & command); - /// Currently used by hyperlink insets - bool viewURL(std::string const &url); + /// Currently used by hyperlink insets and GuiCitation + bool viewURL(docstring const & url); /// View the given file. Buffer used for DVI's paper orientation. bool view(Buffer const & buffer, support::FileName const & filename, std::string const & format_name) const; diff --git a/src/insets/InsetHyperlink.cpp b/src/insets/InsetHyperlink.cpp index eec468ba8d..29ce2ddca7 100644 --- a/src/insets/InsetHyperlink.cpp +++ b/src/insets/InsetHyperlink.cpp @@ -101,11 +101,11 @@ bool InsetHyperlink::getStatus(Cursor & cur, FuncRequest const & cmd, void InsetHyperlink::viewTarget() const { if (getParam("type").empty()) - formats.viewURL(to_ascii(getParam("target"))); + formats.viewURL(getParam("target")); else if (getParam("type") == "file:") { FileName url = makeAbsPath(to_utf8(getParam("target")), buffer().filePath()); - string format = formats.getFormatFromFile(url); + string const format = formats.getFormatFromFile(url); formats.view(buffer(), url, format); } }