summaryrefslogtreecommitdiff
path: root/support/dktools/dk4info.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/dktools/dk4info.c
Initial commit
Diffstat (limited to 'support/dktools/dk4info.c')
-rw-r--r--support/dktools/dk4info.c521
1 files changed, 521 insertions, 0 deletions
diff --git a/support/dktools/dk4info.c b/support/dktools/dk4info.c
new file mode 100644
index 0000000000..b2e68dd8db
--- /dev/null
+++ b/support/dktools/dk4info.c
@@ -0,0 +1,521 @@
+/*
+ WARNING: This file was generated by dkct.
+ 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: dk4info.ctr
+*/
+
+/*
+Copyright (C) 2015-2017, Dirk Krause
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above opyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+* Neither the name of the author nor the names of contributors may be used
+ to endorse or promote products derived from this software without specific
+ prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.
+IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+/** @file dk4info.c The dk4info module.
+*/
+
+
+#line 10 "dk4info.ctr"
+
+
+#include "dk4conf.h"
+
+#if DK4_HAVE_STDLIB_H
+#ifndef STDLIB_H_INCLUDED
+#include <stdlib.h>
+#define STDLIB_H_INCLUDED 1
+#endif
+#endif
+
+#include "dk4app.h"
+#include "dk4aopt.h"
+#include "dk4maodd.h"
+#include "dk4mem.h"
+#include "dk4fput.h"
+#include "dk4vers.h"
+#include "dk4inst.h"
+#include "dk4strd.h"
+
+
+
+
+
+#line 33 "dk4info.ctr"
+
+
+
+#include "dk4info1.c"
+
+
+
+/** Short help text.
+*/
+static const dkChar * const dk_info_help_text[] = {
+dkT(""),
+dkT("Show installation details"),
+dkT(""),
+dkT("dk4info [<options>]"),
+dkT(""),
+dkT("Options:"),
+dkT(""),
+dkT("-l\t\tLong output."),
+dkT(""),
+dkT("--help\t\tShow this short help text."),
+dkT("--manual\t*** SHOW FULL MANUAL. ***"),
+dkT("--version\tShow version information."),
+dkT("--license\tShow license information."),
+dkT(""),
+NULL
+
+
+#line 59 "dk4info.ctr"
+};
+
+
+
+/** License text.
+*/
+static const dkChar * const dk_info_license_text[] = {
+dkT(""),
+dkT("This software uses code from the following projects, either directly or as"),
+dkT("a library:"),
+dkT(""),
+dkT("dktools\t\tDirk Krause's tools and libraries."),
+dkT("\t\tSee http://dktools.sourceforge.net/ for more information."),
+#if DK4_HAVE_ZLIB_H
+dkT(""),
+dkT("zlib\t\tData compression library."),
+dkT("\t\tSee http://www.zlib.net/ for more information."),
+#endif
+#if DK4_HAVE_BZLIB_H
+dkT(""),
+dkT("bzip2\t\tData compression program and library."),
+dkT("\t\tSee http://www.bzip.org/ for more information."),
+#endif
+dkT(""),
+dkT("All the licenses below apply to the program."),
+dkT("Licenses for used libraries are shown as found on my Scientific Linux 6.x"),
+dkT("computer in the /usr/share/doc directory on 2015-04-01. Check the project"),
+dkT("homepages of the used libraries for additional information and/or updated"),
+dkT("license terms."),
+dkT(""),
+dkT(""),
+dkT("DK tools and libraries license"),
+dkT("=============================="),
+dkT("Copyright (c) 2015-2016, Dirk Krause"),
+dkT("All rights reserved."),
+dkT(""),
+dkT("Redistribution and use in source and binary forms, with or without"),
+dkT("modification, are permitted provided that the following conditions are met:"),
+dkT(""),
+dkT("* Redistributions of source code must retain the above copyright notice,"),
+dkT(" this list of conditions and the following disclaimer."),
+dkT("* Redistributions in binary form must reproduce the above copyright"),
+dkT(" notice, this list of conditions and the following disclaimer in the"),
+dkT(" documentation and/or other materials provided with the distribution."),
+dkT("* Neither the name of the Dirk Krause nor the names of contributors may be"),
+dkT(" used to endorse or promote products derived from this software without"),
+dkT(" specific prior written permission."),
+dkT(""),
+dkT("THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\""),
+dkT("AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE"),
+dkT("IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE"),
+dkT("ARE DISCLAIMED."),
+dkT(""),
+dkT("IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,"),
+dkT("INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,"),
+dkT("BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,"),
+dkT("DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY"),
+dkT("OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING"),
+dkT("NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,"),
+dkT("EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."),
+#if DK4_HAVE_ZLIB_H
+dkT(""),
+dkT(""),
+dkT("Zlib license"),
+dkT("============"),
+dkT("(C) 1995-2004 Jean-loup Gailly and Mark Adler"),
+dkT(""),
+dkT("This software is provided 'as-is', without any express or implied"),
+dkT("warranty. In no event will the authors be held liable for any damages"),
+dkT("arising from the use of this software."),
+dkT(""),
+dkT("Permission is granted to anyone to use this software for any purpose,"),
+dkT("including commercial applications, and to alter it and redistribute it"),
+dkT("freely, subject to the following restrictions:"),
+dkT(""),
+dkT("1. The origin of this software must not be misrepresented; you must not"),
+dkT(" claim that you wrote the original software. If you use this software"),
+dkT(" in a product, an acknowledgment in the product documentation would be"),
+dkT(" appreciated but is not required."),
+dkT("2. Altered source versions must be plainly marked as such, and must not be"),
+dkT(" misrepresented as being the original software."),
+dkT("3. This notice may not be removed or altered from any source distribution."),
+dkT(""),
+dkT("Jean-loup Gailly Mark Adler"),
+dkT("jloup@gzip.org madler@alumni.caltech.edu"),
+#endif
+#if DK4_HAVE_BZLIB_H
+dkT(""),
+dkT(""),
+dkT("Bzip2 and libbzip2 library license"),
+dkT("=================================="),
+dkT("This program, \"bzip2\", the associated library \"libbzip2\", and all"),
+dkT("documentation, are copyright (C) 1996-2007 Julian R Seward. All"),
+dkT("rights reserved."),
+dkT(""),
+dkT("Redistribution and use in source and binary forms, with or without"),
+dkT("modification, are permitted provided that the following conditions"),
+dkT("are met:"),
+dkT(""),
+dkT("1. Redistributions of source code must retain the above copyright"),
+dkT(" notice, this list of conditions and the following disclaimer."),
+dkT(""),
+dkT("2. The origin of this software must not be misrepresented; you must "),
+dkT(" not claim that you wrote the original software. If you use this "),
+dkT(" software in a product, an acknowledgment in the product "),
+dkT(" documentation would be appreciated but is not required."),
+dkT(""),
+dkT("3. Altered source versions must be plainly marked as such, and must"),
+dkT(" not be misrepresented as being the original software."),
+dkT(""),
+dkT("4. The name of the author may not be used to endorse or promote "),
+dkT(" products derived from this software without specific prior written "),
+dkT(" permission."),
+dkT(""),
+dkT("THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS"),
+dkT("OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED"),
+dkT("WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE"),
+dkT("ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY"),
+dkT("DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL"),
+dkT("DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE"),
+dkT("GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS"),
+dkT("INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,"),
+dkT("WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING"),
+dkT("NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS"),
+dkT("SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."),
+dkT(""),
+dkT("Julian Seward, jseward@bzip.org"),
+dkT("bzip2/libbzip2 version 1.0.5 of 10 December 2007"),
+#endif
+dkT(""),
+NULL
+
+
+#line 191 "dk4info.ctr"
+};
+
+
+
+/** Constant texts used by the module, not localized.
+*/
+static const dkChar * const dk_info_kwnl[] = {
+/* 0 */
+dkT("dktools"),
+
+/* 1 */
+dkT("dk4info.txt"),
+
+/* 2 */
+dkT("dk4info.str"),
+
+NULL
+
+
+#line 212 "dk4info.ctr"
+};
+
+
+
+/** Program options.
+*/
+static const dk4_option_specification_t dk_info_options[] = {
+ { dkT('l'), dkT("long"), DK4_OPT_ARG_NONE }
+};
+
+
+
+/** Constant texts used by the program, replaced by localized texts.
+*/
+static const dkChar * const dk_info_kw_def[] = {
+/* 0 */
+dkT("Used directories:"),
+
+/* 1 */
+dkT("-----------------"),
+
+/* 2 */
+dkT("Configured at build time:"),
+
+/* 3 */
+dkT("-------------------------"),
+
+/* 4 */
+dkT("Definitions:"),
+
+/* 5 */
+dkT("------------"),
+
+NULL
+
+
+#line 244 "dk4info.ctr"
+};
+
+
+
+/** Option names for configure.
+*/
+static dkChar const *option_names[] = {
+/* 0 */
+dkT("--prefix="),
+
+/* 1 */
+dkT("--sysconfdir="),
+
+/* 2 */
+dkT("--datarootdir="),
+
+/* 3 */
+dkT("--localstatedir="),
+
+/* 4 */
+dkT("--bindir="),
+
+/* 5 */
+dkT("--sbindir="),
+
+/* 6 */
+dkT("--libdir="),
+
+/* 7 */
+dkT("--includedir="),
+
+/* 8 */
+dkT("--mandir="),
+
+/* 9 */
+dkT("--execprefix="),
+
+/* 10 */
+dkT("--libexecdir="),
+
+NULL
+
+
+#line 264 "dk4info.ctr"
+};
+
+
+
+/** Options order.
+*/
+static size_t option_order[] = {
+ 0, 1, 3, 2, 4, 5, 6, 7, 8, 10
+};
+
+
+
+static const size_t szoo = sizeof(option_order)/sizeof(size_t);
+
+/** Replaced by localized texts if found.
+*/
+static const dkChar * const *dk_info_msg = dk_info_kw_def;
+
+
+
+
+/** Number of elements in dk_info_msg.
+*/
+static size_t dk_info_sz_msg =
+sizeof(dk_info_kw_def)/sizeof(DK4_PDKCHAR) - 1;
+
+
+
+/** Number of elements in the options array.
+*/
+static const size_t dk_info_sz_options =
+sizeof(dk_info_options)/sizeof(dk4_option_specification_t);
+
+
+
+/** Application structure.
+*/
+static dk4_app_t *app = NULL;
+
+
+
+/** Exit status code returned by the program.
+*/
+static int exval = EXIT_FAILURE;
+
+
+
+static
+void
+show_one_directory(size_t ind, size_t maxl)
+{
+ const dkChar *val;
+ size_t lgt;
+
+ val = dk4inst_get_directory(ind);
+ if (NULL != val) {
+ lgt = dk4str_len(option_names[ind]);
+ while (lgt++ < maxl) { dk4fputc(dkT(' '), stdout, NULL); }
+ dk4fputs(option_names[ind], stdout, NULL);
+ dk4fputs(val, stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ }
+}
+
+
+
+static
+void
+show_one_used_directory(size_t ind, size_t maxl, const dkChar *dn)
+{
+ size_t lgt;
+ if (NULL != dn) {
+ lgt = dk4str_len(option_names[ind]);
+ while (lgt++ < maxl) { dk4fputc(dkT(' '), stdout, NULL); }
+ dk4fputs(option_names[ind], stdout, NULL);
+ dk4fputs(dn, stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ }
+}
+
+
+
+/** Produce output.
+*/
+static
+void
+dk_info_run_with_app(void)
+{
+ size_t i;
+ size_t maxl = 0;
+ size_t lgt;
+
+ /* Find longest option name length.
+ */
+ for (i = 0; i < 11; i++) {
+ lgt = dk4str_len(option_names[i]);
+ if (lgt > maxl) { maxl = lgt; }
+ }
+
+ /* Show used values.
+ */
+ dk4fputs(dk_info_kw_def[0], stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ dk4fputs(dk_info_kw_def[1], stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ show_one_used_directory(1, maxl, app->dir_etc);
+ show_one_used_directory(4, maxl, app->dir_bin);
+ show_one_used_directory(6, maxl, app->dir_lib);
+ show_one_used_directory(2, maxl, app->dir_share);
+ show_one_used_directory(3, maxl, app->dir_var);
+ dk4fputc(dkT('\n'), stdout, NULL);
+
+ /* Show compiled values.
+ */
+ dk4fputs(dk_info_kw_def[2], stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ dk4fputs(dk_info_kw_def[3], stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ for (i = 0; i < szoo; i++) {
+ lgt = option_order[i];
+ show_one_directory(lgt, maxl);
+ }
+
+ /* Show complete list of defines if required.
+ */
+ if (0 != dk4app_opt_is_set_short(app, dkT('l'), NULL)) {
+ dk4fputc(dkT('\n'), stdout, NULL);
+ dk4fputs(dk_info_kw_def[4], stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ dk4fputs(dk_info_kw_def[5], stdout, NULL);
+ dk4fputc(dkT('\n'), stdout, NULL);
+ showdefines();
+ }
+
+}
+
+
+
+/** Main function.
+ @param argc Number of command line arguments.
+ @param argv Command line arguments array.
+ @return 0 on success, all other values indicate errors.
+*/
+#if DK4_CHAR_SIZE > 1
+int wmain(int argc, wchar_t *argv[])
+#else
+int main(int argc, char *argv[])
+#endif
+{
+
+
+#line 414 "dk4info.ctr"
+
+
+#line 415 "dk4info.ctr"
+
+
+#line 416 "dk4info.ctr"
+
+
+#line 417 "dk4info.ctr"
+ dk4fput_initialize_stdout();
+ dk4fput_initialize_stderr();
+ app = dk4app_open_cmd(
+ argc, argv, dk_info_options, dk_info_sz_options,
+ dk_info_kwnl[0], DKT_VERSION_DK,
+ dk_info_kwnl[1], dk_info_help_text, dk_info_license_text
+ );
+ if (NULL != app) {
+ dk_info_sz_msg = dk4app_string_table_size(dk_info_kw_def);
+ dk_info_msg = dk4app_string_table(app, dk_info_kwnl[2], dk_info_kw_def);
+ if (0 != dk4app_can_run_normally(app)) {
+ dk_info_run_with_app();
+ } else {
+ if (0 != dk4app_help_version_license(app)) {
+ exval = EXIT_SUCCESS;
+ }
+ }
+ dk4app_close(app);
+ }
+ fflush(stdout);
+ fflush(stderr);
+ dk4fput_cleanup_stderr();
+ dk4fput_cleanup_stdout();
+
+
+#line 441 "dk4info.ctr"
+
+
+#line 442 "dk4info.ctr"
+ exit(exval); return exval;
+}
+