summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2022-08-23 22:25:01 +0300
committerDirk-Jan C. Binnema <djcb@djcbsoftware.nl>2022-08-23 22:26:36 +0300
commit0ee49f9b8ca71c1cd64d9c14672e0684d8b872e5 (patch)
tree40ddd15f298925b6f9e549d80f8a1c859bb1e06b
parent906f0910a25d71dd97f92294028b58a0d298b1d3 (diff)
guile: define_vars: define for both name and alias
Scripts seem to depend on both.
-rw-r--r--guile/mu-guile-message.cc16
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 */