X-Git-Url: https://git.draconx.ca/gitweb/upkg.git/blobdiff_plain/7a7477c44a497ed04c9b677488bc42bce90b0831..b8fe472353dead42e203aefda5e8040ad41448a9:/test/common.c diff --git a/test/common.c b/test/common.c index c998624..9919b1b 100644 --- a/test/common.c +++ b/test/common.c @@ -1,6 +1,6 @@ /* * Helper functions for test programs. - * Copyright © 2012 Nick Bowler + * Copyright © 2012, 2022 Nick Bowler * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -13,12 +13,17 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see . + * along with this program. If not, see . */ + +#include +#include #include #include +#include #include "common.h" +#include "help.h" /* * Decode a hexadecimal string into a sequence of bytes. If there are an @@ -35,7 +40,7 @@ size_t test_decode_hex(const char *hex, unsigned char *buf, size_t n) char tmp[] = "00"; for (len = 0; hex[len]; len++) { - if (!isxdigit(hex[len])) + if (!isxdigit((unsigned char)hex[len])) return -1; } @@ -55,3 +60,23 @@ size_t test_decode_hex(const char *hex, unsigned char *buf, size_t n) return count; } + +void test_print_version(const char *program) +{ + printf("%s (%s) %s\n", program, PACKAGE_NAME, PACKAGE_VERSION); + puts("Copyright (C) 2022 Nick Bowler."); + puts("License GPLv3+: GNU GPL version 3 or any later version."); + puts("This is free software: you are free to change and redistribute it."); + puts("There is NO WARRANTY, to the extent permitted by law."); +} + +void test_print_options(const struct option *lopts) +{ + const struct option *opt; + + puts("\nOptions:"); + for (opt = lopts; opt->val; opt++) { + if (help_print_optstring(opt, "ARG", 20)) + putchar('\n'); + } +}