From 76211757ecce73cba981bdf6704954b25a100a8c Mon Sep 17 00:00:00 2001 From: akbash Date: Tue, 18 Aug 2026 00:11:20 +0300 Subject: fix: reap ctrl-click url openers (#2906) * fix: reap ctrl-click url openers refs #2903 * fix: scope linux opener test import refs #2903 * test: isolate url opener regression refs #2903 --------- Co-authored-by: akbash-bot <300245827+akbash-bot@users.noreply.github.com> --- src/platform/fallback.rs | 2 +- src/platform/linux.rs | 6 +++--- src/platform/macos.rs | 6 +++--- src/platform/windows.rs | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) (limited to 'src/platform') diff --git a/src/platform/fallback.rs b/src/platform/fallback.rs index 1b02fae8..cdfbc157 100644 --- a/src/platform/fallback.rs +++ b/src/platform/fallback.rs @@ -202,7 +202,7 @@ pub fn read_clipboard_text() -> Option { } /// Unsupported platform stub. -pub fn open_url(_url: &str) -> std::io::Result<()> { +pub fn open_url(_url: &str) -> std::io::Result> { Err(std::io::Error::new( std::io::ErrorKind::Unsupported, "opening URLs is not supported on this platform", diff --git a/src/platform/linux.rs b/src/platform/linux.rs index f84d9e96..b5c33259 100644 --- a/src/platform/linux.rs +++ b/src/platform/linux.rs @@ -466,14 +466,14 @@ pub fn read_clipboard_text() -> Option { None } -pub fn open_url(url: &str) -> std::io::Result<()> { +pub fn open_url(url: &str) -> std::io::Result> { Command::new("xdg-open") .arg(url) .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) - .spawn()?; - Ok(()) + .spawn() + .map(Some) } pub fn read_clipboard_image() -> Option { diff --git a/src/platform/macos.rs b/src/platform/macos.rs index 9c59b39c..00fd2452 100644 --- a/src/platform/macos.rs +++ b/src/platform/macos.rs @@ -522,14 +522,14 @@ pub fn read_clipboard_text() -> Option { } } -pub fn open_url(url: &str) -> std::io::Result<()> { +pub fn open_url(url: &str) -> std::io::Result> { Command::new("open") .arg(url) .stdin(Stdio::null()) .stdout(Stdio::null()) .stderr(Stdio::null()) - .spawn()?; - Ok(()) + .spawn() + .map(Some) } pub fn read_clipboard_image() -> Option { diff --git a/src/platform/windows.rs b/src/platform/windows.rs index 4e444877..7aee384e 100644 --- a/src/platform/windows.rs +++ b/src/platform/windows.rs @@ -1889,7 +1889,7 @@ pub fn read_clipboard_text() -> Option { None } -pub fn open_url(url: &str) -> std::io::Result<()> { +pub fn open_url(url: &str) -> std::io::Result> { let operation = wide_null("open"); let url = wide_null(url); let result = unsafe { @@ -1903,7 +1903,7 @@ pub fn open_url(url: &str) -> std::io::Result<()> { ) }; if result as isize > 32 { - Ok(()) + Ok(None) } else { Err(std::io::Error::other(format!( "failed to open URL with ShellExecuteW: code {}", -- cgit v1.2.3