summaryrefslogtreecommitdiff
path: root/support/dktools/dk4opt.c
diff options
context:
space:
mode:
Diffstat (limited to 'support/dktools/dk4opt.c')
-rw-r--r--support/dktools/dk4opt.c226
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;
-}
-
-