]> granicus.if.org Git - vim/commitdiff
patch 8.1.1002: "gf" does not always work when URL has a port number v8.1.1002
authorBram Moolenaar <Bram@vim.org>
Sat, 9 Mar 2019 11:32:56 +0000 (12:32 +0100)
committerBram Moolenaar <Bram@vim.org>
Sat, 9 Mar 2019 11:32:56 +0000 (12:32 +0100)
Problem:    "gf" does not always work when URL has a port number. (Jakob
            Schöttl)
Solution:   When a URL is recognized also accept ":". (closes #4082)

src/findfile.c
src/testdir/test_gf.vim
src/version.c

index 9730b35a463731a4b92c92a3f7007320ae25ea85..690cd8fb19176e476a753bc53eb6587d8897cc7b 100644 (file)
@@ -2017,10 +2017,10 @@ file_name_in_line(
     len = 0;
     while (vim_isfilec(ptr[len]) || (ptr[len] == '\\' && ptr[len + 1] == ' ')
                         || ((options & FNAME_HYP) && path_is_url(ptr + len))
-                        || (is_url && vim_strchr((char_u *)"?&=", ptr[len]) != NULL))
+                        || (is_url && vim_strchr((char_u *)":?&=", ptr[len]) != NULL))
     {
-       // After type:// we also include ?, & and = as valid characters, so that
-       // http://google.com?q=this&that=ok works.
+       // After type:// we also include :, ?, & and = as valid characters, so that
+       // http://google.com:8080?q=this&that=ok works.
        if ((ptr[len] >= 'A' && ptr[len] <= 'Z') || (ptr[len] >= 'a' && ptr[len] <= 'z'))
        {
            if (in_type && path_is_url(ptr + len + 1))
index c3523796972da6a7d8f2cf279fef236cd55c4d8a..d233046d2b07b51019957de4f9e0c89f3cfe917d 100644 (file)
@@ -9,6 +9,7 @@ func Test_gf_url()
       \ "third test for URL:\\\\machine.name\\vimtest2c and other text",
       \ "fourth test for URL:\\\\machine.name\\tmp\\vimtest2d, and other text",
       \ "fifth test for URL://machine.name/tmp?q=vim&opt=yes and other text",
+      \ "sixth test for URL://machine.name:1234?q=vim and other text",
       \ ])
   call cursor(1,1)
   call search("^first")
@@ -20,7 +21,7 @@ func Test_gf_url()
   if has("ebcdic")
       set isf=@,240-249,/,.,-,_,+,,,$,:,~,\
   else
-      set isf=@,48-57,/,.,-,_,+,,,$,:,~,\
+      set isf=@,48-57,/,.,-,_,+,,,$,~,\
   endif
   call search("^third")
   call search("name")
@@ -33,6 +34,10 @@ func Test_gf_url()
   call search("URL")
   call assert_equal("URL://machine.name/tmp?q=vim&opt=yes", expand("<cfile>"))
 
+  call search("^sixth")
+  call search("URL")
+  call assert_equal("URL://machine.name:1234?q=vim", expand("<cfile>"))
+
   set isf&vim
   enew!
 endfunc
index 248b8414b71233682c80c45f12f64a26212ee910..1d0f90dd18830c69de97dbbf96215c7dd5515dce 100644 (file)
@@ -779,6 +779,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1002,
 /**/
     1001,
 /**/