From 4706d71e4d4edb49cfdd25f850adf8b6b0e56dc8 Mon Sep 17 00:00:00 2001 From: CJ Quines Date: Mon, 12 Oct 2026 19:50:07 -0400 Subject: [PATCH] fix: invoke certain programs with shlex --- von/controller/add.py | 3 ++- von/controller/edit.py | 3 ++- von/fzf.py | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/von/controller/add.py b/von/controller/add.py index a118f61..a34aefd 100644 --- a/von/controller/add.py +++ b/von/controller/add.py @@ -2,6 +2,7 @@ import logging import os import re +import shlex import subprocess import tempfile import traceback @@ -40,7 +41,7 @@ def user_file_input( filename = tf.name if pre_hook is not None: pre_hook(filename) - subprocess.run([EDITOR, filename]) + subprocess.run([*shlex.split(EDITOR), filename]) with open(filename, "r") as tf: edited_message = "".join(_ for _ in tf.readlines()) diff --git a/von/controller/edit.py b/von/controller/edit.py index 2c169c7..70ba241 100644 --- a/von/controller/edit.py +++ b/von/controller/edit.py @@ -1,4 +1,5 @@ import logging +import shlex import subprocess from .. import model, view @@ -37,7 +38,7 @@ def main(self: object, argv: list[str]): else: full_path = model.completePath(entry.path) preview.make_preview(full_path) - subprocess.call([EDITOR, full_path]) # do editing + subprocess.call([*shlex.split(EDITOR), full_path]) # do editing problem = model.makeProblemFromPath(entry.path) new_entry = model.updateEntryByProblem(old_entry=entry, new_problem=problem) diff --git a/von/fzf.py b/von/fzf.py index e507b4a..a26bedf 100644 --- a/von/fzf.py +++ b/von/fzf.py @@ -1,4 +1,6 @@ +import shlex import subprocess +import sys from .model import PickleMappingEntry, VonIndex, setCache from .puid import inferPUID @@ -21,7 +23,7 @@ def fzf_choose() -> str: "-d", r"\t", "--preview", - "python -m von show {2}", + f"{shlex.quote(sys.executable)} -m von show {{2}}", "--preview-window", "down", ],