summaryrefslogtreecommitdiff
path: root/src/shell_manager.hh
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-06-08 13:34:08 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-06-08 13:45:20 +0100
commit942fc224af403de0a73511a4e6a5dfe4bfa53b91 (patch)
tree43b9482e2e150c6513f4f230bed667e97fd04a91 /src/shell_manager.hh
parent7acf3da3ca6b012d603e4cf7360abb4a3235daca (diff)
Specify if ShellManager should read output or not using a flag
Some program (xclip), will fork a daemon keeping stdout/stderr open, so waiting for them to be closed make kakoune hang. Commands discarding stdout can then just not wait on it.
Diffstat (limited to 'src/shell_manager.hh')
-rw-r--r--src/shell_manager.hh10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/shell_manager.hh b/src/shell_manager.hh
index fde507b6..36c74a3a 100644
--- a/src/shell_manager.hh
+++ b/src/shell_manager.hh
@@ -5,6 +5,7 @@
#include "regex.hh"
#include "utils.hh"
#include "env_vars.hh"
+#include "flags.hh"
namespace Kakoune
{
@@ -20,8 +21,15 @@ class ShellManager : public Singleton<ShellManager>
public:
ShellManager();
+ enum class Flags
+ {
+ None = 0,
+ ReadOutput = 1
+ };
+
std::pair<String, int> eval(StringView cmdline, const Context& context,
StringView input = {},
+ Flags flags = Flags::ReadOutput,
ConstArrayView<String> params = {},
const EnvVarMap& env_vars = EnvVarMap{});
@@ -32,6 +40,8 @@ private:
Vector<std::pair<Regex, EnvVarRetriever>> m_env_vars;
};
+template<> struct WithBitOps<ShellManager::Flags> : std::true_type {};
+
}
#endif // shell_manager_hh_INCLUDED