beloopana: Remove duplicate comments.
[libfirm] / ir / libcore / lc_opts.c
index db1cb68..fc9c162 100644 (file)
@@ -1,21 +1,7 @@
 /*
-  libcore: library for basic data structures and algorithms.
-  Copyright (C) 2005  IPD Goos, Universit"at Karlsruhe, Germany
-
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 of the License, or (at your option) any later version.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-*/
+ * This file is part of libFirm.
+ * Copyright (C) 2012 IPD Goos, Universit"at Karlsruhe, Germany
+ */
 #include "config.h"
 
 #include <stdio.h>
@@ -176,8 +162,6 @@ static const char *get_type_name(lc_opt_type_t type)
                XXX(double);
                XXX(boolean);
                XXX(string);
-               case lc_opt_type_negbit:     res = "bit";     break;
-               case lc_opt_type_negboolean: res = "boolean"; break;
                default:
                res = "<none>";
        }
@@ -232,7 +216,7 @@ lc_opt_entry_t *lc_opt_add_opt(lc_opt_entry_t *parent,
 static lc_opt_entry_t *lc_opt_find_ent(const struct list_head *head, const char *name,
                int error_to_use, lc_opt_err_info_t *err)
 {
-       lc_opt_entry_t *ent, *found = NULL;
+       lc_opt_entry_t *found = NULL;
        int error = error_to_use;
        unsigned hash = hash_str(name);
 
@@ -360,22 +344,10 @@ int lc_opt_std_cb(const char *name, lc_opt_type_t type, void *data, size_t lengt
                                *(unsigned*)data &= ~length;
                        break;
 
-               case lc_opt_type_negbit:
-                       integer = va_arg(args, int);
-                       if (integer)
-                               *(unsigned*)data &= ~length;
-                       else
-                               *(unsigned*)data |= length;
-                       break;
-
                case lc_opt_type_boolean:
                        *((int *) data) = va_arg(args, int);
                        break;
 
-               case lc_opt_type_negboolean:
-                       *((int *) data) = !va_arg(args, int);
-                       break;
-
                case lc_opt_type_string:
                        strncpy((char*)data, va_arg(args, const char *), length);
                        break;
@@ -405,11 +377,9 @@ int lc_opt_std_dump(char *buf, size_t n, const char *name, lc_opt_type_t type, v
        if (data) {
                switch (type) {
                case lc_opt_type_bit:
-               case lc_opt_type_negbit:
                        res = snprintf(buf, n, "%x", *((unsigned *) data));
                        break;
                case lc_opt_type_boolean:
-               case lc_opt_type_negboolean:
                        res = snprintf(buf, n, "%s", *((int *) data) ? "true" : "false");
                        break;
                case lc_opt_type_string:
@@ -501,9 +471,7 @@ int lc_opt_occurs(lc_opt_entry_t *opt, const char *value, lc_opt_err_info_t *err
                        break;
 
                case lc_opt_type_boolean:
-               case lc_opt_type_negboolean:
                case lc_opt_type_bit:
-               case lc_opt_type_negbit:
                                strtolower(buf, sizeof(buf), value);
                                for (i = 0; i < ARRAY_SIZE(bool_strings); ++i) {
                                        if (strcmp(buf, bool_strings[i].str) == 0) {
@@ -611,7 +579,6 @@ static void lc_opt_print_help_rec(lc_opt_entry_t *ent, char separator, lc_opt_en
        char grp_name[512];
        char value[256];
        char values[512];
-       lc_opt_entry_t *e;
 
        if (!list_empty(&s->opts)) {
                lc_opt_print_grp_path(grp_name, sizeof(grp_name), ent, separator, stop_ent);
@@ -669,8 +636,6 @@ static void lc_opt_print_tree_grp_indent(lc_opt_entry_t *ent, FILE *f, int level
        lc_grp_special_t *s;
 
        if (ent->is_grp) {
-               lc_opt_entry_t *e;
-
                s = lc_get_grp_special(ent);
                indent(f, level);
                fprintf(f, "/%s\n", ent->name);
@@ -702,14 +667,14 @@ int lc_opt_from_single_arg(const lc_opt_entry_t *root,
 {
        const lc_opt_entry_t *grp = root;
        size_t n                  = strlen(arg);
-       size_t n_prefix           = opt_prefix ? strlen(opt_prefix) : 0;
+       size_t n_prefix           = opt_prefix != NULL ? strlen(opt_prefix) : 0;
        int error                 = 0;
        int ret                   = 0;
 
        lc_opt_err_info_t err;
        const char *end, *eqsign;
 
-       if (n >= n_prefix && strncmp(opt_prefix, arg, n_prefix) == 0) {
+       if (n >= n_prefix && (n_prefix == 0 || strncmp(opt_prefix, arg, n_prefix) == 0)) {
                arg = arg + n_prefix;
 
                /* find the next delimiter (the -) and extract the string up to