mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-28 13:53:10 +00:00
Make the global feature set an instance variable
Allow it to be inlined.
This commit is contained in:
parent
1c43030d79
commit
6e11750479
2 changed files with 10 additions and 7 deletions
|
@ -6,12 +6,10 @@
|
||||||
|
|
||||||
#include "wcstringutil.h"
|
#include "wcstringutil.h"
|
||||||
|
|
||||||
|
features_t::features_t() = default;
|
||||||
|
|
||||||
/// The set of features applying to this instance.
|
/// The set of features applying to this instance.
|
||||||
static features_t global_features;
|
features_t features_t::global_features;
|
||||||
|
|
||||||
const features_t &fish_features() { return global_features; }
|
|
||||||
|
|
||||||
features_t &mutable_fish_features() { return global_features; }
|
|
||||||
|
|
||||||
const features_t::metadata_t features_t::metadata[features_t::flag_count] = {
|
const features_t::metadata_t features_t::metadata[features_t::flag_count] = {
|
||||||
{stderr_nocaret, L"stderr-nocaret", L"3.0", L"^ no longer redirects stderr"},
|
{stderr_nocaret, L"stderr-nocaret", L"3.0", L"^ no longer redirects stderr"},
|
||||||
|
|
|
@ -64,19 +64,24 @@ class features_t {
|
||||||
/// Return the metadata for a particular name, or nullptr if not found.
|
/// Return the metadata for a particular name, or nullptr if not found.
|
||||||
static const struct metadata_t *metadata_for(const wchar_t *name);
|
static const struct metadata_t *metadata_for(const wchar_t *name);
|
||||||
|
|
||||||
|
/// The singleton shared feature set.
|
||||||
|
static features_t global_features;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
features_t();
|
||||||
|
|
||||||
/// Values for the flags.
|
/// Values for the flags.
|
||||||
bool values[flag_count] = {};
|
bool values[flag_count] = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Return the global set of features for fish. This is const to prevent accidental mutation.
|
/// Return the global set of features for fish. This is const to prevent accidental mutation.
|
||||||
const features_t &fish_features();
|
inline const features_t &fish_features() { return features_t::global_features; }
|
||||||
|
|
||||||
/// Perform a feature test on the global set of features.
|
/// Perform a feature test on the global set of features.
|
||||||
inline bool feature_test(features_t::flag_t f) { return fish_features().test(f); }
|
inline bool feature_test(features_t::flag_t f) { return fish_features().test(f); }
|
||||||
|
|
||||||
/// Return the global set of features for fish, but mutable. In general fish features should be set
|
/// Return the global set of features for fish, but mutable. In general fish features should be set
|
||||||
/// at startup only.
|
/// at startup only.
|
||||||
features_t &mutable_fish_features();
|
inline features_t &mutable_fish_features() { return features_t::global_features; }
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue