diff options
Diffstat (limited to 'lib/pure/browsers.nim')
-rw-r--r-- | lib/pure/browsers.nim | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/pure/browsers.nim b/lib/pure/browsers.nim index 2dc14b895..9b3b67104 100644 --- a/lib/pure/browsers.nim +++ b/lib/pure/browsers.nim @@ -18,6 +18,7 @@ import strutils when defined(windows): import winlean + from os import absolutePath else: import os, osproc @@ -26,16 +27,21 @@ const osOpenCmd* = ## Alias for the operating system specific *"open"* command, ## ``"open"`` on OSX, MacOS and Windows, ``"xdg-open"`` on Linux, BSD, etc. +proc prepare(s: string): string = + if s.contains("://"): + result = s + else: + result = "file://" & absolutePath(s) -template openDefaultBrowserImpl(url: string) = +proc openDefaultBrowserImpl(url: string) = when defined(windows): var o = newWideCString(osOpenCmd) - var u = newWideCString(url) + var u = newWideCString(prepare url) discard shellExecuteW(0'i32, o, u, nil, nil, SW_SHOWNORMAL) elif defined(macosx): - discard execShellCmd(osOpenCmd & " " & quoteShell(url)) + discard execShellCmd(osOpenCmd & " " & quoteShell(prepare url)) else: - var u = quoteShell(url) + var u = quoteShell(prepare url) if execShellCmd(osOpenCmd & " " & u) == 0: return for b in getEnv("BROWSER").string.split(PathSep): try: |