diff options
| author | Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> | 2022-08-23 22:25:01 +0300 |
|---|---|---|
| committer | Dirk-Jan C. Binnema <djcb@djcbsoftware.nl> | 2022-08-23 22:25:01 +0300 |
| commit | 529e856d356841f890a9f7a9036a25b994492ba2 (patch) | |
| tree | 2e748dbec25d72cb7c5c5c2fc398b27c3ffe9c69 /guile | |
| parent | fafc7d3bf6ef8243da764e445dccfa7ca7efcfa5 (diff) | |
guile: define_vars: define for both name and alias
Scripts seem to depend on both.
Diffstat (limited to 'guile')
| -rw-r--r-- | guile/mu-guile-message.cc | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/guile/mu-guile-message.cc b/guile/mu-guile-message.cc index 2d0bb5e..184bd91 100644 --- a/guile/mu-guile-message.cc +++ b/guile/mu-guile-message.cc @@ -444,10 +444,18 @@ static void define_vars(void) { field_for_each([](auto&& field){ - const auto name{"mu:field:" + - std::string{field.alias.empty() ? field.name : field.alias}}; - scm_c_define(name.c_str(), scm_from_uint(field.value_no())); - scm_c_export(name.c_str(), NULL); + + auto defvar = [&](auto&& fname, auto&& ffield) { + const auto name{"mu:field:" + std::string{fname}}; + scm_c_define(name.c_str(), scm_from_uint(field.value_no())); + scm_c_export(name.c_str(), NULL); + }; + + // define for both name and (if exists) alias. + if (!field.name.empty()) + defvar(field.name, field); + if (!field.alias.empty()) + defvar(field.alias, field); }); /* non-Xapian field: timestamp */ |
