diff options
Diffstat (limited to 'support/dktools/dk4opt.c')
-rw-r--r-- | support/dktools/dk4opt.c | 226 |
1 files changed, 0 insertions, 226 deletions
diff --git a/support/dktools/dk4opt.c b/support/dktools/dk4opt.c deleted file mode 100644 index f5e6ff24bc..0000000000 --- a/support/dktools/dk4opt.c +++ /dev/null @@ -1,226 +0,0 @@ -/* -Copyright (C) 2015-2020, Dirk Krause -SPDX-License-Identifier: BSD-3-Clause -*/ - -/* - WARNING: This file was generated by the dkct program (see - http://dktools.sourceforge.net/ for details). - Changes you make here will be lost if dkct is run again! - You should modify the original source and run dkct on it. - Original source: dk4opt.ctr -*/ - -/** @file dk4opt.c The dk4opt module. -*/ - - -#line 315 "dk4opt.ctr" - - - -#include "dk4conf.h" -#include "dk4opt.h" -#include "dk4strd.h" -#include "dk4mem.h" - -#if DK4_HAVE_ASSERT_H -#ifndef ASSERT_H_INCLUDED -#include <assert.h> -#define ASSERT_H_INCLUDED 1 -#endif -#endif - - - - -#line 332 "dk4opt.ctr" - - - -/** Compare two options by short option. - @param olp Left option structure. - @param orp Right option structure. - @return Comparison result. -*/ -static -int -dk4option_short_compare(const dk4_option_t *olp, const dk4_option_t *orp) -{ - int back = 0; - if ((olp->spec).c > (orp->spec).c) { - back = 1; - } else { - if ((olp->spec).c < (orp->spec).c) { - back = -1; - } - } - return back; -} - - - -/** Compare two options by long option. - @param olp Left option structure. - @param orp Right option structure. - @return Comparison result. -*/ -static -int -dk4option_long_compare(const dk4_option_t *olp, const dk4_option_t *orp) -{ - int back = 0; - if (NULL != (olp->spec).longopt) { - if (NULL != (orp->spec).longopt) { - back = dk4str_cmp((olp->spec).longopt, (orp->spec).longopt); - if (-1 > back) back = -1; - if ( 1 < back) back = 1; - } else { - back = 1; - } - } else { - if (NULL != (orp->spec).longopt) { - back = -1; - } - } - return back; -} - - - -int -dk4option_compare(const void *l, const void *r, int cr) -{ - const dk4_option_t *olp; - const dk4_option_t *orp; - const dkChar *cp; - - int back = 0; - if (NULL != l) { - olp = (const dk4_option_t *)l; - if (NULL != r) { - switch (cr) { - case 3: { - cp = (const dkChar *)r; - if (NULL != (olp->spec).longopt) { - back = dk4str_cmp((olp->spec).longopt, cp); - if (-1 > back) back = -1; - if ( 1 < back) back = 1; - } else { - back = -1; - } - } break; - case 2: { - orp = (const dk4_option_t *)r; - back = dk4option_long_compare(olp, orp); - if (0 == back) { - back = dk4option_short_compare(olp, orp); - } - } break; - case 1: { - cp = (const dkChar *)r; - if ((olp->spec).c > *cp) { - back = 1; - } else { - if ((olp->spec).c < *cp) { - back = -1; - } - } - } break; - default: { - orp = (const dk4_option_t *)r; - back = dk4option_short_compare(olp, orp); - if (0 == back) { - back = dk4option_long_compare(olp, orp); - } - } break; - } - } else { - back = 1; - } - } else { - if (NULL != r) { - back = -1; - } - } - return back; -} - - - -void -dk4opt_close(dk4_option_t *optptr) -{ - - -#line 449 "dk4opt.ctr" -#if DK4_USE_ASSERT - assert(NULL != optptr); -#endif - if (NULL != optptr) { - -#line 453 "dk4opt.ctr" - /* - We can not sanitize the memory for option name and option value - as the option name is constant and the option value was provided - by the shell and is owned by the shell. - */ - (optptr->spec).longopt = NULL; - (optptr->val).t = NULL; - dk4mem_free(optptr); - } - - -#line 463 "dk4opt.ctr" -} - - - -dk4_option_t * -dk4opt_open(const dk4_option_specification_t *spec, dk4_er_t *erp) -{ - dk4_option_t *back = NULL; -#if DK4_USE_ASSERT - assert(NULL != spec); -#endif - if (NULL != spec) { - if ((NULL != spec->longopt) || (dkT('\0') != spec->c)) { - back = dk4mem_new(dk4_option_t,1,NULL); - if (NULL != back) { - DK4_MEMCPY(&(back->spec),spec,sizeof(dk4_option_specification_t)); - back->found = 0; - switch ((back->spec).argtype) { - case DK4_OPT_ARG_BOOL: { - (back->val).b = 0; - } break; - case DK4_OPT_ARG_SIZE: { - (back->val).s = 0; - } break; - case DK4_OPT_ARG_INT: { - (back->val).i = (dk4_im_t)0L; - } break; - case DK4_OPT_ARG_UNSIGNED: { - (back->val).u = (dk4_um_t)0UL; - } break; - case DK4_OPT_ARG_DOUBLE: { - (back->val).d = 0.0; - } break; - case DK4_OPT_ARG_STRING: { - (back->val).t = NULL; - } break; - } - } else { - dk4error_set_elsize_nelem( - erp, DK4_E_MEMORY_ALLOCATION_FAILED, sizeof(dk4_option_t), 1 - ); - } - } else { - dk4error_set_simple_error_code(erp, DK4_E_SYNTAX); - } - } else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - |