summaryrefslogtreecommitdiff
path: root/support/dktools/dk4apphlv.ctr
diff options
context:
space:
mode:
Diffstat (limited to 'support/dktools/dk4apphlv.ctr')
-rw-r--r--support/dktools/dk4apphlv.ctr267
1 files changed, 0 insertions, 267 deletions
diff --git a/support/dktools/dk4apphlv.ctr b/support/dktools/dk4apphlv.ctr
deleted file mode 100644
index c66da8202e..0000000000
--- a/support/dktools/dk4apphlv.ctr
+++ /dev/null
@@ -1,267 +0,0 @@
-%% options
-
-copyright owner = Dirk Krause
-copyright year = 2015-xxxx
-SPDX-License-Identifier: BSD-3-Clause
-
-
-
-%% module
-
-#include "dk4conf.h"
-#include "dk4types.h"
-#include "dk4mpl.h"
-#include "dk4app.h"
-#include "dk4fs.h"
-#include "dk4tspdk.h"
-#include "dk4fput.h"
-#include "dk4mem.h"
-#include "dk4strm.h"
-#include "dk4strmr.h"
-#include "dk4enc.h"
-#include "dk4const.h"
-#include "dk4unused.h"
-
-#if DK4_HAVE_ASSERT_H
-#ifndef ASSERT_H_INCLUDED
-#include <assert.h>
-#define ASSERT_H_INCLUDED 1
-#endif
-#endif
-
-
-$!trace-include
-
-
-
-int
-dk4app_can_run_normally(dk4_app_t const *app)
-{
- int back = 0;
- if (NULL != app) {
- back = 1;
- if (0 != app->hvl_cmd) {
- back = 0;
- }
- }
- return back;
-}
-
-
-
-/** Show all strings in a text array, line by line.
- CRT on Windows: Required.
- @param array Array containing texts to show.
-*/
-static
-void
-dk4app_show_text_array(const dkChar * const *array)
-{
- while(*array) {
- dk4fputs(*(array++), stdout, NULL);
- dk4fputc(dkT('\n'), stdout, NULL);
- }
-}
-
-
-
-/** Object used to show help.
-*/
-typedef struct {
- FILE *outfile; /**< Output file. */
-} dk4_help_shower_t;
-
-
-
-/** Handler function for single characters.
- CRT on Windows: Required.
- @param obj Object to modify while processing the character.
- @param c Character to process.
- @param pos Current position in file or data stream.
- @param erp Error report, may be NULL.
- @return DK4_TSP_RES_OK if the character was processed
- successfully,
- DK4_TSP_RES_ERROR if there was an error but we can
- continue,
- DK4_TSP_RES_FATAL if there was a fatal error so we
- should abort processing.
-*/
-static
-int
-dk4app_help_show_char_handler(
- void *obj,
- dkChar c,
- dk4_text_stream_position_t * DK4_ARG_UNUSED(pos),
- dk4_er_t * DK4_ARG_UNUSED(erp)
-)
-{
- dk4_help_shower_t *helpshow;
-
- DK4_UNUSED_ARG(pos)
- DK4_UNUSED_ARG(erp)
- if (dkT('\r') != c) {
- helpshow = (dk4_help_shower_t *)obj;
- dk4fputc(c, helpshow->outfile, NULL);
- if (dkT('\n') == c) {
- fflush(helpshow->outfile);
- }
- }
- return (DK4_TSP_RES_OK);
-}
-
-
-
-/** Show short built-in help text.
- CRT on Windows: Required.
- @param app Application structure.
-*/
-static
-void
-dk4app_show_help(dk4_app_t const *app)
-{
- const dkChar * const *ptr;
-
-#if DK4_USE_ASSERT
- assert(NULL != app);
-#endif
- if (NULL != app->help_text) {
- ptr = app->help_text;
- if (0 != (DK4_APP_CMD_ERROR & (app->hvl_cmd))) {
- dk4fput_initialize_stderr();
- } else {
- dk4fput_initialize_stdout();
- }
- while (NULL != *ptr) {
- dk4fputs(
- *(ptr++),
- ((DK4_APP_CMD_ERROR & (app->hvl_cmd)) ? stderr : stdout),
- NULL
- );
- dk4fputc(
- dkT('\n'),
- ((DK4_APP_CMD_ERROR & (app->hvl_cmd)) ? stderr : stdout),
- NULL
- );
- }
- }
-}
-
-
-
-/** Show help text (full manual if available, short help text otherwise).
- CRT on Windows: Required.
- @param app Application structure.
-*/
-static
-void
-dk4app_show_manual(dk4_app_t *app)
-{
- unsigned char inb[4096];
- dkChar fnb[DK4_MAX_PATH];
- dk4_tspdk_t tspdk;
- dk4_stream_t *istrm;
- dk4_help_shower_t helpshow;
- size_t sz;
- int res;
- int done = 0;
-
-#if DK4_USE_ASSERT
- assert(NULL != app);
-#endif
- if (NULL != app->help_file_name) {
- res = dk4app_search_data_file(
- fnb, DK4_SIZEOF(fnb,dkChar), app, app->help_file_name,
- DK4_FS_DATA_MAX_SYS, 1, NULL
- );
- if (0 != res) {
- istrm = dk4stream_open_file_reader(fnb, NULL);
- if (NULL != istrm) {
- if (0 != (DK4_APP_CMD_ERROR & (app->hvl_cmd))) {
- dk4fput_initialize_stderr();
- helpshow.outfile = stderr;
- } else {
- dk4fput_initialize_stdout();
- helpshow.outfile = stdout;
- }
- res = dk4tspdk_setup_char(
- &tspdk, (void *)(&helpshow), dk4app_help_show_char_handler,
- app->encoding, DK4_FILE_ENCODING_UTF8, NULL
- );
- if (0 != res) {
- do {
- sz = sizeof(inb);
- if (0 < dk4stream_read(inb, &sz, istrm, NULL)) {
- if (0 < sz) {
- (void)dk4tspdk_add_bytes(&tspdk, inb, sz);
- done = 1;
- }
- } else {
- sz = 0;
- }
- } while (0 < sz);
- (void)dk4tspdk_finish(&tspdk);
- }
- dk4stream_close(istrm, NULL);
- }
- }
- }
- if (0 == done) {
- dk4app_show_help(app);
- }
-}
-
-
-
-int
-dk4app_help_version_license(dk4_app_t *app)
-{
- int back = 0;
-#if DK4_USE_ASSERT
- assert(NULL != app);
-#endif
-
- if (NULL != app) {
- back = 1;
- if (0 != app->hvl_cmd) {
- if (DK4_APP_CMD_ERROR & (app->hvl_cmd)) {
- dk4app_show_manual(app);
- back = 0;
- } else {
- switch (app->hvl_cmd) {
- case DK4_APP_CMD_MANUAL: {
- dk4app_show_manual(app);
- } break;
- case DK4_APP_CMD_HELP: {
- dk4app_show_help(app);
- } break;
- case DK4_APP_CMD_VERSION: {
- if (NULL != app->vers_text) {
- dk4fput_initialize_stdout();
- dk4fputs(app->vers_text, stdout, NULL);
- dk4fputc(dkT('\n'), stdout, NULL);
- }
- } break;
- case DK4_APP_CMD_LICENSE: {
- if (NULL != app->lic_text) {
- dk4fput_initialize_stdout();
- dk4app_show_text_array(app->lic_text);
- }
- } break;
- default: {
- /* ERROR: --help, --version, --license mutually exclusive! */
- dk4app_log_base1(app, DK4_LL_ERROR, 81);
- app->hvl_cmd |= DK4_APP_CMD_ERROR;
- dk4app_show_manual(app);
- back = 0;
- } break;
- }
- }
- } else {
- /* BUG: None of the options found in command line */
- back = 0;
- }
- }
- return back;
-}
-
-