diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-06-08 13:34:08 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-06-08 13:45:20 +0100 |
| commit | 942fc224af403de0a73511a4e6a5dfe4bfa53b91 (patch) | |
| tree | 43b9482e2e150c6513f4f230bed667e97fd04a91 /src/shell_manager.hh | |
| parent | 7acf3da3ca6b012d603e4cf7360abb4a3235daca (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.hh | 10 |
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 |
