1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /** @file kparg.c
- * @brief Parsed ARGument
- */
- #include <assert.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <faux/str.h>
- #include <klish/khelper.h>
- #include <klish/kentry.h>
- #include <klish/kpargv.h> // Contains parg and pargv
- struct kparg_s {
- const kentry_t *entry;
- char *value;
- };
- // Entry
- KGET(parg, const kentry_t *, entry);
- // Value
- KSET_STR(parg, value);
- KGET_STR(parg, value);
- kparg_t *kparg_new(const kentry_t *entry, const char *value)
- {
- kparg_t *parg = NULL;
- if (!entry)
- return NULL;
- parg = faux_zmalloc(sizeof(*parg));
- assert(parg);
- if (!parg)
- return NULL;
- // Initialize
- parg->entry = entry;
- kparg_set_value(parg, value);
- return parg;
- }
- void kparg_free(kparg_t *parg)
- {
- if (!parg)
- return;
- faux_str_free(parg->value);
- faux_free(parg);
- }
|