NeoMutt  2024-04-25-1-g3de005
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
config_type.c File Reference

Type representing an Expando. More...

#include "config.h"
#include <stddef.h>
#include <assert.h>
#include <limits.h>
#include <stdint.h>
#include <stdio.h>
#include "mutt/lib.h"
#include "config/lib.h"
#include "expando.h"
+ Include dependency graph for config_type.c:

Go to the source code of this file.

Functions

static void expando_destroy (const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef)
 Destroy an Expando object - Implements ConfigSetType::destroy() -.
 
static int expando_string_set (const struct ConfigSet *cs, void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
 Set an Expando by string - Implements ConfigSetType::string_set() -.
 
static int expando_string_get (const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, struct Buffer *result)
 Get an Expando as a string - Implements ConfigSetType::string_get() -.
 
static int expando_native_set (const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
 Set an Expando object from an Expando config item - Implements ConfigSetType::native_get() -.
 
static intptr_t expando_native_get (const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, struct Buffer *err)
 Get an Expando object from an Expando config item - Implements ConfigSetType::native_get() -.
 
static int expando_string_plus_equals (const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
 Add to an Expando by string - Implements ConfigSetType::string_plus_equals() -.
 
static int expando_reset (const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, struct Buffer *err)
 Reset an Expando to its initial value - Implements ConfigSetType::reset() -.
 
const struct Expandocs_subset_expando (const struct ConfigSubset *sub, const char *name)
 Get an Expando config item by name.
 

Variables

const struct ConfigSetType CstExpando
 Config type representing an Expando.
 

Detailed Description

Type representing an Expando.

Authors
  • Tóth János
  • Richard Russon

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file config_type.c.

Function Documentation

◆ cs_subset_expando()

const struct Expando * cs_subset_expando ( const struct ConfigSubset sub,
const char *  name 
)

Get an Expando config item by name.

Parameters
subConfig Subset
nameName of config item
Return values
ptrExpando
NULLEmpty Expando

Definition at line 358 of file config_type.c.

359{
360 assert(sub && name);
361
362 struct HashElem *he = cs_subset_create_inheritance(sub, name);
363 assert(he);
364
365#ifndef NDEBUG
366 struct HashElem *he_base = cs_get_base(he);
367 assert(DTYPE(he_base->type) == DT_EXPANDO);
368#endif
369
370 intptr_t value = cs_subset_he_native_get(sub, he, NULL);
371 assert(value != INT_MIN);
372
373 return (const struct Expando *) value;
374}
struct HashElem * cs_get_base(struct HashElem *he)
Find the root Config Item.
Definition: set.c:160
Parsed Expando trees.
Definition: expando.h:41
The item stored in a Hash Table.
Definition: hash.h:43
int type
Type of data stored in Hash Table, e.g. DT_STRING.
Definition: hash.h:44
intptr_t cs_subset_he_native_get(const struct ConfigSubset *sub, struct HashElem *he, struct Buffer *err)
Natively get the value of a HashElem config item.
Definition: subset.c:258
struct HashElem * cs_subset_create_inheritance(const struct ConfigSubset *sub, const char *name)
Create a Subset config item (inherited)
Definition: subset.c:208
#define DTYPE(t)
Definition: types.h:50
@ DT_EXPANDO
an expando
Definition: types.h:34
+ Here is the call graph for this function:

Variable Documentation

◆ CstExpando

const struct ConfigSetType CstExpando
Initial value:
= {
"expando",
NULL,
}
static void expando_destroy(const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef)
Destroy an Expando object - Implements ConfigSetType::destroy() -.
Definition: config_type.c:49
static int expando_native_set(const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, intptr_t value, struct Buffer *err)
Set an Expando object from an Expando config item - Implements ConfigSetType::native_get() -.
Definition: config_type.c:161
static intptr_t expando_native_get(const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, struct Buffer *err)
Get an Expando object from an Expando config item - Implements ConfigSetType::native_get() -.
Definition: config_type.c:211
static int expando_reset(const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, struct Buffer *err)
Reset an Expando to its initial value - Implements ConfigSetType::reset() -.
Definition: config_type.c:285
static int expando_string_get(const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, struct Buffer *result)
Get an Expando as a string - Implements ConfigSetType::string_get() -.
Definition: config_type.c:135
static int expando_string_plus_equals(const struct ConfigSet *cs, void *var, const struct ConfigDef *cdef, const char *value, struct Buffer *err)
Add to an Expando by string - Implements ConfigSetType::string_plus_equals() -.
Definition: config_type.c:225
static int expando_string_set(const struct ConfigSet *cs, void *var, struct ConfigDef *cdef, const char *value, struct Buffer *err)
Set an Expando by string - Implements ConfigSetType::string_set() -.
Definition: config_type.c:61

Config type representing an Expando.

Definition at line 338 of file config_type.c.