From 0d6774468cf109c9cb6502cb81f1219c6e68ee37 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Fri, 8 Nov 2019 15:13:32 +0100 Subject: [PATCH] Move editorFor srom libutil to nix libutil should not depend on libexpr. --- src/libutil/args.cc | 13 ------------- src/libutil/args.hh | 4 ---- src/nix/command.cc | 14 ++++++++++++++ src/nix/command.hh | 5 +++++ 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/libutil/args.cc b/src/libutil/args.cc index b7baad375..7af2a1bf7 100644 --- a/src/libutil/args.cc +++ b/src/libutil/args.cc @@ -178,19 +178,6 @@ Strings argvToStrings(int argc, char * * argv) return args; } -Strings editorFor(Pos pos) -{ - auto editor = getEnv("EDITOR", "cat"); - auto args = tokenizeString(editor); - if (pos.line > 0 && ( - editor.find("emacs") != std::string::npos || - editor.find("nano") != std::string::npos || - editor.find("vim") != std::string::npos)) - args.push_back(fmt("+%d", pos.line)); - args.push_back(pos.file); - return args; -} - std::string renderLabels(const Strings & labels) { std::string res; diff --git a/src/libutil/args.hh b/src/libutil/args.hh index 1e29bd4fa..ad5fcca39 100644 --- a/src/libutil/args.hh +++ b/src/libutil/args.hh @@ -5,7 +5,6 @@ #include #include "util.hh" -#include "nixexpr.hh" namespace nix { @@ -191,9 +190,6 @@ public: Strings argvToStrings(int argc, char * * argv); -/* Helper function to generate args that invoke $EDITOR on filename:lineno */ -Strings editorFor(Pos pos); - /* Helper function for rendering argument labels. */ std::string renderLabels(const Strings & labels); diff --git a/src/nix/command.cc b/src/nix/command.cc index 532f331a7..97c2fcf1c 100644 --- a/src/nix/command.cc +++ b/src/nix/command.cc @@ -1,6 +1,7 @@ #include "command.hh" #include "store-api.hh" #include "derivations.hh" +#include "nixexpr.hh" namespace nix { @@ -153,4 +154,17 @@ void StorePathCommand::run(ref store) run(store, *storePaths.begin()); } +Strings editorFor(const Pos & pos) +{ + auto editor = getEnv("EDITOR", "cat"); + auto args = tokenizeString(editor); + if (pos.line > 0 && ( + editor.find("emacs") != std::string::npos || + editor.find("nano") != std::string::npos || + editor.find("vim") != std::string::npos)) + args.push_back(fmt("+%d", pos.line)); + args.push_back(pos.file); + return args; +} + } diff --git a/src/nix/command.hh b/src/nix/command.hh index fad404c73..26c15e646 100644 --- a/src/nix/command.hh +++ b/src/nix/command.hh @@ -10,6 +10,7 @@ extern std::string programPath; struct Value; class Bindings; class EvalState; +struct Pos; /* A command is an argument parser that can be executed by calling its run() method. */ @@ -216,4 +217,8 @@ PathSet toDerivations(ref store, std::vector> installables, bool useDeriver = false); +/* Helper function to generate args that invoke $EDITOR on + filename:lineno. */ +Strings editorFor(const Pos & pos); + }