Merge branch 'hint_spawn_fix' of https://github.com/rcorre/qutebrowser into rcorre-hint_spawn_fix

This commit is contained in:
Florian Bruhin 2016-05-30 16:09:28 +02:00
commit a39c662633
4 changed files with 40 additions and 7 deletions

View File

@ -36,7 +36,6 @@ from qutebrowser.keyinput import modeman, modeparsers
from qutebrowser.browser import webelem from qutebrowser.browser import webelem
from qutebrowser.commands import userscripts, cmdexc, cmdutils, runners from qutebrowser.commands import userscripts, cmdexc, cmdutils, runners
from qutebrowser.utils import usertypes, log, qtutils, message, objreg, utils from qutebrowser.utils import usertypes, log, qtutils, message, objreg, utils
from qutebrowser.misc import guiprocess
ElemTuple = collections.namedtuple('ElemTuple', ['elem', 'label']) ElemTuple = collections.namedtuple('ElemTuple', ['elem', 'label'])
@ -625,9 +624,8 @@ class HintManager(QObject):
""" """
urlstr = url.toString(QUrl.FullyEncoded | QUrl.RemovePassword) urlstr = url.toString(QUrl.FullyEncoded | QUrl.RemovePassword)
args = context.get_args(urlstr) args = context.get_args(urlstr)
cmd, *args = args commandrunner = runners.CommandRunner(self._win_id)
proc = guiprocess.GUIProcess(self._win_id, what='command', parent=self) commandrunner.run_safely('spawn ' + ' '.join(args))
proc.start(cmd, args)
def _resolve_url(self, elem, baseurl): def _resolve_url(self, elem, baseurl):
"""Resolve a URL and check if we want to keep it. """Resolve a URL and check if we want to keep it.
@ -781,7 +779,7 @@ class HintManager(QObject):
webview.openurl(url) webview.openurl(url)
@cmdutils.register(instance='hintmanager', scope='tab', name='hint', @cmdutils.register(instance='hintmanager', scope='tab', name='hint',
star_args_optional=True) star_args_optional=True, maxsplit=2)
@cmdutils.argument('win_id', win_id=True) @cmdutils.argument('win_id', win_id=True)
def start(self, rapid=False, group=webelem.Group.all, target=Target.normal, def start(self, rapid=False, group=webelem.Group.all, target=Target.normal,
*args, win_id): *args, win_id):

View File

@ -124,6 +124,7 @@ def run_command(quteproc, httpbin, command):
else: else:
count = None count = None
command = command.replace('(port)', str(httpbin.port)) command = command.replace('(port)', str(httpbin.port))
command = command.replace('(testdata)', utils.abs_datapath())
quteproc.send_cmd(command, count=count) quteproc.send_cmd(command, count=count)

View File

@ -44,12 +44,43 @@ Feature: Using hints
And I run :fake-key -g <Esc> And I run :fake-key -g <Esc>
Then no crash should happen Then no crash should happen
@xfail Scenario: Using :hint spawn with flags and -- (issue 797)
When I open data/hints/html/simple.html
And I run :hint -- all spawn -v echo
And I run :follow-hint a
Then the message "Command exited successfully." should be shown
Scenario: Using :hint spawn with flags (issue 797) Scenario: Using :hint spawn with flags (issue 797)
When I open data/hints/html/simple.html When I open data/hints/html/simple.html
And I run :hint all spawn -v echo And I run :hint all spawn -v echo
And I run :follow-hint a And I run :follow-hint a
Then the message "Command exited successfully" should be shown Then the message "Command exited successfully." should be shown
Scenario: Using :hint spawn with flags and --rapid (issue 797)
When I open data/hints/html/simple.html
And I run :hint --rapid all spawn -v echo
And I run :follow-hint a
Then the message "Command exited successfully." should be shown
Scenario: Using :hint run
When I open data/hints/html/simple.html
And I run :hint all run message-info {hint-url}
And I run :follow-hint a
Then the message "http://localhost:(port)/data/hello.txt" should be shown
Scenario: Using :hint fill
When I open data/hints/html/simple.html
And I run :hint all fill :message-info {hint-url}
And I run :follow-hint a
And I press the key "<Enter>"
Then the message "http://localhost:(port)/data/hello.txt" should be shown
@posix
Scenario: Using :hint userscript
When I open data/hints/html/simple.html
And I run :hint all userscript (testdata)/userscripts/echo_hint_text
And I run :follow-hint a
Then the message "Follow me!" should be shown
Scenario: Yanking to primary selection without it being supported (#1336) Scenario: Yanking to primary selection without it being supported (#1336)
When selection is not supported When selection is not supported

View File

@ -0,0 +1,3 @@
#!/bin/bash
echo "message-info '$QUTE_SELECTED_TEXT'" >> "$QUTE_FIFO"