diff options
| author | Rye <rye@alchemyviewer.org> | 2025-12-01 10:11:18 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-01 17:11:18 +0200 |
| commit | 906c58ac3821ce364096b7c7f2df80b67d9740b6 (patch) | |
| tree | d8cce021e4a7de3542a13fd7e1867e7ab99e7802 /indra | |
| parent | 19d9ded23d8f945d102cc0a87fe05bc2685409d5 (diff) | |
#5083 Fallback to OS open handler in external editor when no editor is explicitly set (#5077)
* Fallback to OS open handler in external editor when no editor is explicitly set
Signed-off-by: Rye <rye@alchemyviewer.org>
* Apply suggestion to use SystemRoot for windows OS root path in open handler
Co-authored-by: Ansariel Hiller <Ansariel@users.noreply.github.com>
---------
Signed-off-by: Rye <rye@alchemyviewer.org>
Co-authored-by: Ansariel Hiller <Ansariel@users.noreply.github.com>
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llexternaleditor.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/indra/newview/llexternaleditor.cpp b/indra/newview/llexternaleditor.cpp index 3decd15bbd..193a42f9f6 100644 --- a/indra/newview/llexternaleditor.cpp +++ b/indra/newview/llexternaleditor.cpp @@ -44,8 +44,20 @@ LLExternalEditor::EErrorCode LLExternalEditor::setCommand(const std::string& env std::string cmd = findCommand(env_var, override); if (cmd.empty()) { - LL_WARNS() << "Editor command is empty or not set" << LL_ENDL; - return EC_NOT_SPECIFIED; + LL_INFOS() << "Editor command is empty or not set, falling back to OS open handler" << LL_ENDL; +#if LL_WINDOWS + static const std::string os_cmd = "%SystemRoot%\\explorer.exe \"%s\""; +#elif LL_DARWIN + static const std::string os_cmd = "/usr/bin/open \"%s\""; +#elif LL_LINUX + static const std::string os_cmd = "/usr/bin/xdg-open \"%s\""; +#endif + cmd = findCommand("", os_cmd); + if (cmd.empty()) + { + LL_WARNS() << "Failed to find OS open handler \"" << cmd << "\"" << LL_ENDL; + return EC_NOT_SPECIFIED; + } } string_vec_t tokens; |
