/* Expect a value */
INI_EXPECT_VALUE,
- /* Expect a negative number value */
- INI_EXPECT_VALUE_NUMBER_NEG,
-
/* Expect a comma character (',') */
INI_EXPECT_COMMA,
};
g_string_append_printf(state->ini_error, "^\n\n");
}
+/* Parse the next token as a number and return its negation. */
+static
+bt_value *ini_parse_neg_number(struct ini_parsing_state *state)
+{
+ bt_value *value = NULL;
+ GTokenType token_type = g_scanner_get_next_token(state->scanner);
+
+ switch (token_type) {
+ case G_TOKEN_INT:
+ {
+ /* Negative integer */
+ uint64_t int_val = state->scanner->value.v_int64;
+
+ if (int_val > (1ULL << 63) - 1) {
+ g_string_append_printf(state->ini_error,
+ "Integer value -%" PRIu64 " is outside the range of a 64-bit signed integer\n",
+ int_val);
+ } else {
+ value = bt_value_integer_create_init(-((int64_t) int_val));
+ }
+
+ break;
+ }
+ case G_TOKEN_FLOAT:
+ /* Negative floating point number */
+ value = bt_value_real_create_init(-state->scanner->value.v_float);
+ break;
+ default:
+ ini_append_error_expecting(state, state->scanner, "value");
+ break;
+ }
+
+ return value;
+}
+
static
int ini_handle_state(struct ini_parsing_state *state)
{
state->scanner, "'='");
break;
case INI_EXPECT_VALUE:
- case INI_EXPECT_VALUE_NUMBER_NEG:
ini_append_error_expecting(state,
state->scanner, "value");
break;
case G_TOKEN_CHAR:
if (state->scanner->value.v_char == '-') {
/* Negative number */
- state->expecting =
- INI_EXPECT_VALUE_NUMBER_NEG;
+ value = ini_parse_neg_number(state);
+ if (!value) {
+ goto error;
+ }
+
+ state->expecting = INI_EXPECT_COMMA;
goto success;
} else {
ini_append_error_expecting(state,
state->expecting = INI_EXPECT_COMMA;
goto success;
}
- case INI_EXPECT_VALUE_NUMBER_NEG:
- {
- switch (token_type) {
- case G_TOKEN_INT:
- {
- /* Negative integer */
- uint64_t int_val = state->scanner->value.v_int64;
-
- if (int_val > (1ULL << 63) - 1) {
- g_string_append_printf(state->ini_error,
- "Integer value -%" PRIu64 " is outside the range of a 64-bit signed integer\n",
- int_val);
- goto error;
- }
-
- value = bt_value_integer_create_init(-((int64_t)int_val));
- break;
- }
- case G_TOKEN_FLOAT:
- /* Negative floating point number */
- value = bt_value_real_create_init(-state->scanner->value.v_float);
- break;
- default:
- /* Unset value variable will trigger the error */
- break;
- }
-
- if (!value) {
- ini_append_error_expecting(state,
- state->scanner, "value");
- goto error;
- }
-
- state->expecting = INI_EXPECT_COMMA;
- goto success;
- }
case INI_EXPECT_COMMA:
if (token_type != G_TOKEN_CHAR) {
ini_append_error_expecting(state,
int ret;
struct bt_config *cfg = NULL;
const char *leftover;
- bt_value *params = bt_value_null;
+ bt_value *params;
+
+ params = bt_value_null;
+ bt_value_get_ref(bt_value_null);
*retcode = 0;
cfg = bt_config_query_create(initial_plugin_paths);
fprintf(fp, " in the plugin PLUGIN, add it to the graph,\n");
fprintf(fp, " and optionally name it NAME (you can also\n");
fprintf(fp, " specify the name with --name)\n");
- fprintf(fp, " -C, --connect=CONNECTION Connect two created components (see the\n");
+ fprintf(fp, " -x, --connect=CONNECTION Connect two created components (see the\n");
fprintf(fp, " expected format of CONNECTION below)\n");
fprintf(fp, " --key=KEY Set the current initialization string\n");
fprintf(fp, " parameter key to KEY (see --value)\n");
struct poptOption run_long_options[] = {
{ "base-params", 'b', POPT_ARG_STRING, NULL, OPT_BASE_PARAMS, NULL, NULL },
{ "component", 'c', POPT_ARG_STRING, NULL, OPT_COMPONENT, NULL, NULL },
- { "connect", 'C', POPT_ARG_STRING, NULL, OPT_CONNECT, NULL, NULL },
+ { "connect", 'x', POPT_ARG_STRING, NULL, OPT_CONNECT, NULL, NULL },
{ "help", 'h', POPT_ARG_NONE, NULL, OPT_HELP, NULL, NULL },
{ "key", '\0', POPT_ARG_STRING, NULL, OPT_KEY, NULL, NULL },
{ "name", 'n', POPT_ARG_STRING, NULL, OPT_NAME, NULL, NULL },
append_implicit_component_param(
&implicit_text_args, "clock-gmt", "yes");
append_implicit_component_param(
- &implicit_trimmer_args, "clock-gmt", "yes");
+ &implicit_trimmer_args, "gmt", "yes");
implicit_text_args.exists = true;
break;
case OPT_CLOCK_OFFSET: