diff options
author | somov <somov@yandex-team.ru> | 2022-02-10 16:45:47 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:47 +0300 |
commit | a5950576e397b1909261050b8c7da16db58f10b1 (patch) | |
tree | 7ba7677f6a4c3e19e2cefab34d16df2c8963b4d4 /contrib/tools/yasm/frontends/tasm/tasm-options.c | |
parent | 81eddc8c0b55990194e112b02d127b87d54164a9 (diff) | |
download | ydb-a5950576e397b1909261050b8c7da16db58f10b1.tar.gz |
Restoring authorship annotation for <somov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/tools/yasm/frontends/tasm/tasm-options.c')
-rw-r--r-- | contrib/tools/yasm/frontends/tasm/tasm-options.c | 254 |
1 files changed, 127 insertions, 127 deletions
diff --git a/contrib/tools/yasm/frontends/tasm/tasm-options.c b/contrib/tools/yasm/frontends/tasm/tasm-options.c index 57c3bdfd15..3baee28fbb 100644 --- a/contrib/tools/yasm/frontends/tasm/tasm-options.c +++ b/contrib/tools/yasm/frontends/tasm/tasm-options.c @@ -1,127 +1,127 @@ -/* - * Generic Options Support Header File - * - * Copyright (c) 2001 Stanislav Karchebny <berk@madfire.net> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the author nor the names of other contributors - * may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER 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 AUTHOR OR OTHER 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. - */ -#include <util.h> -#include <ctype.h> - -#include "tasm-options.h" - - -#ifdef __DEBUG__ -#define DEBUG(x) fprintf ## x ; -#else -#define DEBUG(x) -#endif - - -/* Options Parser */ -int -parse_cmdline(int argc, char **argv, opt_option *options, size_t nopts, - void (*print_error) (const char *fmt, ...)) -{ - int errors = 0, warnings = 0; - size_t i; - int got_it; - - DEBUG((stderr, "parse_cmdline: entered\n")); - - fail: - while (--argc) { - argv++; - - if (argv[0][0] == '/' && argv[0][1]) { /* opt */ - got_it = 0; - for (i = 0; i < nopts; i++) { - char *cmd = &argv[0][1]; - size_t len = strlen(options[i].opt); - if (yasm__strncasecmp(cmd, options[i].opt, len) == 0) { - char *param; - - param = &argv[0][1+len]; - if (options[i].takes_param) { - if (param[0] == '\0') { - print_error( - _("option `-%c' needs an argument!"), - options[i].opt); - errors++; - goto fail; - } else { - argc--; - argv++; - } - } else - param = NULL; - - if (!options[i].handler(cmd, param, options[i].extra)) - got_it = 1; - break; - } - } - if (!got_it) { - print_error(_("warning: unrecognized option `%s'"), - argv[0]); - warnings++; - } - } else { /* not an option, then it should be a file or something */ - - if (not_an_option_handler(argv[0])) - errors++; - } - } - - DEBUG((stderr, "parse_cmdline: finished\n")); - return errors; -} - -void -help_msg(const char *msg, const char *tail, opt_option *options, size_t nopts) -{ - char optbuf[100]; - size_t i; - - printf("%s", gettext(msg)); - - for (i = 0; i < nopts; i++) { - optbuf[0] = 0; - - if (options[i].takes_param) { - if (options[i].opt) - sprintf(optbuf, "/%s <%s>", options[i].opt, - options[i].param_desc ? options[i]. - param_desc : _("param")); - } else { - if (options[i].opt) - sprintf(optbuf, "/%s", options[i].opt); - } - - printf(" %-22s %s\n", optbuf, gettext(options[i].description)); - } - - printf("%s", gettext(tail)); -} +/* + * Generic Options Support Header File + * + * Copyright (c) 2001 Stanislav Karchebny <berk@madfire.net> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the author nor the names of other contributors + * may be used to endorse or promote products derived from this + * software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER 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 AUTHOR OR OTHER 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. + */ +#include <util.h> +#include <ctype.h> + +#include "tasm-options.h" + + +#ifdef __DEBUG__ +#define DEBUG(x) fprintf ## x ; +#else +#define DEBUG(x) +#endif + + +/* Options Parser */ +int +parse_cmdline(int argc, char **argv, opt_option *options, size_t nopts, + void (*print_error) (const char *fmt, ...)) +{ + int errors = 0, warnings = 0; + size_t i; + int got_it; + + DEBUG((stderr, "parse_cmdline: entered\n")); + + fail: + while (--argc) { + argv++; + + if (argv[0][0] == '/' && argv[0][1]) { /* opt */ + got_it = 0; + for (i = 0; i < nopts; i++) { + char *cmd = &argv[0][1]; + size_t len = strlen(options[i].opt); + if (yasm__strncasecmp(cmd, options[i].opt, len) == 0) { + char *param; + + param = &argv[0][1+len]; + if (options[i].takes_param) { + if (param[0] == '\0') { + print_error( + _("option `-%c' needs an argument!"), + options[i].opt); + errors++; + goto fail; + } else { + argc--; + argv++; + } + } else + param = NULL; + + if (!options[i].handler(cmd, param, options[i].extra)) + got_it = 1; + break; + } + } + if (!got_it) { + print_error(_("warning: unrecognized option `%s'"), + argv[0]); + warnings++; + } + } else { /* not an option, then it should be a file or something */ + + if (not_an_option_handler(argv[0])) + errors++; + } + } + + DEBUG((stderr, "parse_cmdline: finished\n")); + return errors; +} + +void +help_msg(const char *msg, const char *tail, opt_option *options, size_t nopts) +{ + char optbuf[100]; + size_t i; + + printf("%s", gettext(msg)); + + for (i = 0; i < nopts; i++) { + optbuf[0] = 0; + + if (options[i].takes_param) { + if (options[i].opt) + sprintf(optbuf, "/%s <%s>", options[i].opt, + options[i].param_desc ? options[i]. + param_desc : _("param")); + } else { + if (options[i].opt) + sprintf(optbuf, "/%s", options[i].opt); + } + + printf(" %-22s %s\n", optbuf, gettext(options[i].description)); + } + + printf("%s", gettext(tail)); +} |