/*
- * Copyright 2016-2019 Philippe Proulx <pproulx@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
+ * SPDX-License-Identifier: MIT
*
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
+ * Copyright 2016-2019 Philippe Proulx <pproulx@efficios.com>
*/
+#include "param-parse.h"
+
#include <errno.h>
#include <stdlib.h>
#include <string.h>
}
for (i = 0; i < pos; ++i) {
- g_string_append_printf(state->ini_error, " ");
+ g_string_append_c(state->ini_error, ' ');
}
- g_string_append_printf(state->ini_error, "^\n\n");
+ g_string_append_c(state->ini_error, '^');
}
static
goto error;
}
- token_type = g_scanner_get_next_token(state->scanner);
+ g_scanner_get_next_token(state->scanner);
/* Parse the entry value... */
entry_value = ini_parse_value(state);
g_string_assign(state->last_map_key,
state->scanner->value.v_identifier);
- if (bt_value_map_has_entry(state->params,
- state->last_map_key->str)) {
- g_string_append_printf(state->ini_error,
- "Duplicate parameter key: `%s`\n",
- state->last_map_key->str);
- goto error;
- }
-
state->expecting = INI_EXPECT_EQUAL;
goto success;
case INI_EXPECT_EQUAL:
state->expecting = INI_EXPECT_MAP_KEY;
goto success;
default:
- abort();
+ bt_common_abort();
}
error:
/* Lexical scanner configuration */
GScannerConfig scanner_config = {
/* Skip whitespaces */
- .cset_skip_characters = " \t\n",
+ .cset_skip_characters = (gchar *) " \t\n",
/* Identifier syntax is: [a-zA-Z_][a-zA-Z0-9_.:-]* */
- .cset_identifier_first =
+ .cset_identifier_first = (gchar *)
G_CSET_a_2_z
"_"
G_CSET_A_2_Z,
- .cset_identifier_nth =
+ .cset_identifier_nth = (gchar *)
G_CSET_a_2_z
"_0123456789-.:"
G_CSET_A_2_Z,