diff options
author | Naïm Favier <n@monade.li> | 2021-12-22 12:37:59 +0100 |
---|---|---|
committer | Naïm Favier <n@monade.li> | 2021-12-22 16:17:01 +0100 |
commit | 1da1b2b345ccf32220a2628622ee8b170d9d521a (patch) | |
tree | 800a607ba075453c97525994a510fa1e1e4c6efc /src/libutil | |
parent | 6e6e998930f0d7361d64644eb37d9134e74e8501 (diff) |
Don't insert spaces when completing attribute paths
Diffstat (limited to 'src/libutil')
-rw-r--r-- | src/libutil/args.cc | 4 | ||||
-rw-r--r-- | src/libutil/args.hh | 8 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/libutil/args.cc b/src/libutil/args.cc index 9df279faf..a739d6b4e 100644 --- a/src/libutil/args.cc +++ b/src/libutil/args.cc @@ -39,7 +39,7 @@ void Completions::add(std::string completion, std::string description) bool Completion::operator<(const Completion & other) const { return completion < other.completion || (completion == other.completion && description < other.description); } -bool pathCompletions = false; +CompletionType completionType = ctNormal; std::shared_ptr<Completions> completions; std::string completionMarker = "___COMPLETE___"; @@ -277,7 +277,7 @@ Args::Flag Args::Flag::mkHashTypeOptFlag(std::string && longName, std::optional< static void _completePath(std::string_view prefix, bool onlyDirs) { - pathCompletions = true; + completionType = ctFilenames; glob_t globbuf; int flags = GLOB_NOESCAPE | GLOB_TILDE; #ifdef GLOB_ONLYDIR diff --git a/src/libutil/args.hh b/src/libutil/args.hh index 7521b3065..76b1cfe92 100644 --- a/src/libutil/args.hh +++ b/src/libutil/args.hh @@ -237,7 +237,13 @@ public: void add(std::string completion, std::string description = ""); }; extern std::shared_ptr<Completions> completions; -extern bool pathCompletions; + +enum CompletionType { + ctNormal, + ctFilenames, + ctAttrs +}; +extern CompletionType completionType; std::optional<std::string> needsCompletion(std::string_view s); |