From f2bcd706ebb85346c8eb5aff63cbd0faa29dcf51 Mon Sep 17 00:00:00 2001 From: David Aguilar Date: Mon, 23 Nov 2015 21:51:54 -0800 Subject: [PATCH] core: add list2cmdline() wrapper Signed-off-by: David Aguilar --- cola/cmds.py | 4 ++-- cola/core.py | 4 ++++ cola/git.py | 2 +- cola/interaction.py | 3 +-- cola/main.py | 7 +++---- cola/models/dag.py | 4 +--- cola/models/prefs.py | 3 +-- cola/qtutils.py | 4 +--- cola/widgets/completion.py | 4 ++-- cola/widgets/dag.py | 4 ++-- cola/widgets/search.py | 3 +-- 11 files changed, 19 insertions(+), 23 deletions(-) diff --git a/cola/cmds.py b/cola/cmds.py index 7c48cf23..13cfae16 100644 --- a/cola/cmds.py +++ b/cola/cmds.py @@ -446,7 +446,7 @@ class Ignore(Command): def file_summary(files): - txt = subprocess.list2cmdline(files) + txt = core.list2cmdline(files) if len(txt) > 768: txt = txt[:768].rstrip() + '...' return txt @@ -827,7 +827,7 @@ class LaunchDifftool(BaseCommand): mergetool.extend(paths) needs_shellquote = set(['gnome-terminal', 'xfce4-terminal']) if os.path.basename(argv[0]) in needs_shellquote: - argv.append(subprocess.list2cmdline(mergetool)) + argv.append(core.list2cmdline(mergetool)) else: argv.extend(mergetool) core.fork(argv) diff --git a/cola/core.py b/cola/core.py index 3d3287e9..b85db237 100644 --- a/cola/core.py +++ b/cola/core.py @@ -64,6 +64,10 @@ def mkpath(path, encoding=None): return encode(path, encoding=encoding) +def list2cmdline(cmd): + return subprocess.list2cmdline(map(decode, cmd)) + + def read(filename, size=-1, encoding=None, errors='strict'): """Read filename and return contents""" with xopen(filename, 'rb') as fh: diff --git a/cola/git.py b/cola/git.py index 945cbc82..ba4c45f2 100644 --- a/cola/git.py +++ b/cola/git.py @@ -200,7 +200,7 @@ class Git(object): cola_trace = GIT_COLA_TRACE if cola_trace == 'trace': - msg = 'trace: ' + subprocess.list2cmdline(command) + msg = 'trace: ' + core.list2cmdline(command) Interaction.log_status(status, msg, '') elif cola_trace == 'full': if out or err: diff --git a/cola/interaction.py b/cola/interaction.py index 1ca7462b..e380aa35 100644 --- a/cola/interaction.py +++ b/cola/interaction.py @@ -1,7 +1,6 @@ from __future__ import division, absolute_import, unicode_literals import os -import subprocess from cola import core from cola.i18n import N_ @@ -55,7 +54,7 @@ class Interaction(object): @classmethod def run_command(cls, title, cmd): - cls.log('$ ' + subprocess.list2cmdline(cmd)) + cls.log('$ ' + core.list2cmdline(cmd)) status, out, err = core.run_command(cmd) cls.log_status(status, out, err) return status, out, err diff --git a/cola/main.py b/cola/main.py index 31778381..682c8840 100644 --- a/cola/main.py +++ b/cola/main.py @@ -1,7 +1,6 @@ """Launcher and command line interface to git-cola""" import argparse import os -import subprocess import sys from cola.app import add_common_arguments @@ -326,7 +325,7 @@ def cmd_dag(args): def cmd_diff(args): context = application_init(args) from cola.difftool import diff_expression - expr = subprocess.list2cmdline(map(core.decode, args.args)) + expr = core.list2cmdline(args.args) view = diff_expression(None, expr, create_widget=True) return application_start(context, view) @@ -344,7 +343,7 @@ def cmd_fetch(args): def cmd_find(args): context = application_init(args) from cola.widgets import finder - paths = subprocess.list2cmdline(map(core.decode, args.paths)) + paths = core.list2cmdline(args.paths) view = finder.finder(paths=paths) return application_start(context, view) @@ -352,7 +351,7 @@ def cmd_find(args): def cmd_grep(args): context = application_init(args) from cola.widgets import grep - text = subprocess.list2cmdline(map(core.decode, args.args)) + text = core.list2cmdline(args.args) view = grep.new_grep(text=text, parent=None) return application_start(context, view) diff --git a/cola/models/dag.py b/cola/models/dag.py index 0ee66065..955caf02 100644 --- a/cola/models/dag.py +++ b/cola/models/dag.py @@ -1,7 +1,5 @@ from __future__ import division, absolute_import, unicode_literals -import subprocess - from cola import core from cola import utils from cola.git import git @@ -74,7 +72,7 @@ class DAG(Observable): self.overrides['count'] = args.count if hasattr(args, 'args') and args.args: - ref = subprocess.list2cmdline(map(core.decode, args.args)) + ref = core.list2cmdline(args.args) if self.set_ref(ref): self.overrides['ref'] = ref diff --git a/cola/models/prefs.py b/cola/models/prefs.py index 7c2718a9..08ad42ca 100644 --- a/cola/models/prefs.py +++ b/cola/models/prefs.py @@ -1,7 +1,6 @@ from __future__ import division, absolute_import, unicode_literals import sys -import subprocess from cola import core from cola import gitcfg @@ -72,7 +71,7 @@ def default_history_browser(): python = sys.executable.replace("\\", '/') argv = [python, git_cola, 'dag'] argv = core.prep_for_subprocess(argv) - default = core.decode(subprocess.list2cmdline(argv)) + default = core.list2cmdline(argv) else: # The `gitk` script can be launched as-is on unix default = 'gitk' diff --git a/cola/qtutils.py b/cola/qtutils.py index 29a35ecd..5c35854e 100644 --- a/cola/qtutils.py +++ b/cola/qtutils.py @@ -3,8 +3,6 @@ """ from __future__ import division, absolute_import, unicode_literals -import subprocess - from PyQt4 import QtGui from PyQt4 import QtCore from PyQt4.QtCore import Qt @@ -761,7 +759,7 @@ def mimedata_from_paths(paths): # gnome-terminal expects utf-16 encoded text, but other terminals, # e.g. terminator, prefer utf-8, so allow cola.dragencoding # to override the default. - paths_text = subprocess.list2cmdline(abspaths) + paths_text = core.list2cmdline(abspaths) encoding = gitcfg.current().get('cola.dragencoding', 'utf-16') moz_text = core.encode(paths_text, encoding=encoding) mimedata.setData('text/x-moz-url', moz_text) diff --git a/cola/widgets/completion.py b/cola/widgets/completion.py index 70084014..52cfe9a6 100644 --- a/cola/widgets/completion.py +++ b/cola/widgets/completion.py @@ -1,13 +1,13 @@ from __future__ import division, absolute_import, unicode_literals import re -import subprocess from PyQt4 import QtCore from PyQt4 import QtGui from PyQt4.QtCore import Qt from PyQt4.QtCore import SIGNAL +from cola import core from cola import gitcmds from cola import icons from cola import qtutils @@ -127,7 +127,7 @@ class CompletionLineEdit(text.HintedLineEdit): words.pop() words.append(completion) - text = subprocess.list2cmdline(words) + text = core.list2cmdline(words) self.setText(text) self.emit(SIGNAL('changed()')) self._do_text_changed(text, '') diff --git a/cola/widgets/dag.py b/cola/widgets/dag.py index d7d79267..b35a0134 100644 --- a/cola/widgets/dag.py +++ b/cola/widgets/dag.py @@ -1,7 +1,6 @@ from __future__ import division, absolute_import, unicode_literals import collections -import subprocess import math from PyQt4 import QtGui @@ -11,6 +10,7 @@ from PyQt4.QtCore import SIGNAL from PyQt4.QtCore import QPointF from PyQt4.QtCore import QRectF +from cola import core from cola import cmds from cola import difftool from cola import hotkeys @@ -621,7 +621,7 @@ class GitDAG(standard.MainWindow): def histories_selected(self, histories): argv = [self.model.currentbranch, '--'] argv.extend(histories) - text = subprocess.list2cmdline(argv) + text = core.list2cmdline(argv) self.revtext.setText(text) self.display() diff --git a/cola/widgets/search.py b/cola/widgets/search.py index d94bbead..9794fd50 100644 --- a/cola/widgets/search.py +++ b/cola/widgets/search.py @@ -2,7 +2,6 @@ from __future__ import division, absolute_import, unicode_literals import time -import subprocess from PyQt4 import QtGui from PyQt4 import QtCore @@ -312,7 +311,7 @@ class Search(SearchWidget): if not path.startswith(core.getcwd()): continue filepaths.append(path[lenprefix:]) - query = subprocess.list2cmdline(filepaths) + query = core.list2cmdline(filepaths) self.query.setText(query) if query: self.search_callback() -- 2.11.4.GIT