Merge pull request #895 from mattrose/865-file-links-not-clickable-if-the-root-dir-has-a-underscore
Properly parse file:/// URIs
This commit is contained in:
commit
3c0abdf6d6
@ -300,6 +300,7 @@ class Terminal(Gtk.VBox):
|
|||||||
registry.load_plugins(force)
|
registry.load_plugins(force)
|
||||||
|
|
||||||
def _add_regex(self, name, re):
|
def _add_regex(self, name, re):
|
||||||
|
dbg(f"adding regex: {re}")
|
||||||
match = -1
|
match = -1
|
||||||
if regex.FLAGS_PCRE2:
|
if regex.FLAGS_PCRE2:
|
||||||
try:
|
try:
|
||||||
@ -323,19 +324,23 @@ class Terminal(Gtk.VBox):
|
|||||||
passchars = "-A-Za-z0-9,?;.:/!%$^*&~\"#'"
|
passchars = "-A-Za-z0-9,?;.:/!%$^*&~\"#'"
|
||||||
hostchars = r"-A-Za-z0-9:\[\]"
|
hostchars = r"-A-Za-z0-9:\[\]"
|
||||||
pathchars = "-A-Za-z0-9_$.+!*(),;:@&=?/~#%'"
|
pathchars = "-A-Za-z0-9_$.+!*(),;:@&=?/~#%'"
|
||||||
schemes = "(news:|telnet:|nntp:|file:/|https?:|ftps?:|webcal:|ssh:)"
|
schemes = "(news:|telnet:|nntp:|https?:|ftps?:|webcal:|ssh:)"
|
||||||
user = "[" + userchars + "]+(:[" + passchars + "]+)?"
|
user = "[" + userchars + "]+(:[" + passchars + "]+)?"
|
||||||
urlpath = "/[" + pathchars + "]*[^]'.}>) \t\r\n,\\\"]"
|
urlpath = "/[" + pathchars + "]*[^]'.}>) \t\r\n,\\\"]"
|
||||||
|
|
||||||
lboundry = "\\b"
|
lboundry = "\\b"
|
||||||
rboundry = "\\b"
|
rboundry = "\\b"
|
||||||
|
|
||||||
|
re = (lboundry + "file:/" + "//?(:[0-9]+)?(" + urlpath + ")" +
|
||||||
|
rboundry + "/?")
|
||||||
|
self._add_regex('file', re)
|
||||||
|
|
||||||
re = (lboundry + schemes +
|
re = (lboundry + schemes +
|
||||||
"//(" + user + "@)?[" + hostchars +".]+(:[0-9]+)?(" +
|
"//(" + user + "@)?[" + hostchars +".]+(:[0-9]+)?(" +
|
||||||
urlpath + ")?" + rboundry + "/?")
|
urlpath + ")?" + rboundry + "/?")
|
||||||
self._add_regex('full_uri', re)
|
self._add_regex('full_uri', re)
|
||||||
|
|
||||||
if self.matches['full_uri'] == -1:
|
if self.matches['full_uri'] == -1 or self.matches['file'] == -1:
|
||||||
err ('Terminal::update_url_matches: Failed adding URL matches')
|
err ('Terminal::update_url_matches: Failed adding URL matches')
|
||||||
else:
|
else:
|
||||||
re = (lboundry +
|
re = (lboundry +
|
||||||
|
Loading…
Reference in New Issue
Block a user