From 4eae890b11b743cbdcf68ee185d67bce873076dc Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Sat, 17 Jan 2026 11:44:34 +0100 Subject: fix(open): make URI scheme matching case-insensitive --- programs/open/main.go | 7 +++++-- programs/open/main_test.go | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/programs/open/main.go b/programs/open/main.go index ad3c3ca..f193f3f 100644 --- a/programs/open/main.go +++ b/programs/open/main.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "mime" + "net/url" "os" "os/exec" "path" @@ -57,8 +58,10 @@ func main() { } func (c Config) findCommand(arg string) ([]string, error) { - for scheme, cmd := range c.UriSchemes { - if strings.HasPrefix(arg, scheme+":") { + u, err := url.Parse(arg) + if err == nil && u.Scheme != "" { + cmd, ok := c.UriSchemes[u.Scheme] + if ok { return cmd, nil } } diff --git a/programs/open/main_test.go b/programs/open/main_test.go index 213c2e4..57b501f 100644 --- a/programs/open/main_test.go +++ b/programs/open/main_test.go @@ -20,6 +20,7 @@ func TestFindCommand_Uri(t *testing.T) { cases := []string{ "http://example.com", + "hTtP://example.com", "http:example.com", "http:", } -- cgit v1.3.1