summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mate-calc-application.c47
1 files changed, 21 insertions, 26 deletions
diff --git a/src/mate-calc-application.c b/src/mate-calc-application.c
index 667e4b9..587bb27 100644
--- a/src/mate-calc-application.c
+++ b/src/mate-calc-application.c
@@ -112,6 +112,12 @@ mate_calc_application_shutdown(GApplication *application)
G_APPLICATION_CLASS(mate_calc_application_parent_class)->shutdown(application);
}
+static int
+do_convert(const MPNumber *x, const char *x_units, const char *z_units, MPNumber *z, void *data)
+{
+ return unit_manager_convert_by_symbol(unit_manager_get_default(), x, x_units, z_units, z);
+}
+
static gint
mate_calc_application_handle_local_options(GApplication *application,
GVariantDict *options)
@@ -122,28 +128,10 @@ mate_calc_application_handle_local_options(GApplication *application,
return 0;
}
- /* Let the default handler continue */
- return -1;
-}
-
-static int
-do_convert(const MPNumber *x, const char *x_units, const char *z_units, MPNumber *z, void *data)
-{
- return unit_manager_convert_by_symbol(unit_manager_get_default(), x, x_units, z_units, z);
-}
-
-static gint
-mate_calc_application_command_line(GApplication *application,
- GApplicationCommandLine *command_line)
-{
- GVariantDict *options;
const gchar *solve_expr = NULL;
-
- options = g_application_command_line_get_options_dict(command_line);
-
if (g_variant_dict_lookup(options, "solve", "&s", &solve_expr))
{
- /* Solve mode - handled by mate-calc-cmd or inline */
+ /* Solve mode - handled locally without initializing the full GUI */
MPEquationOptions mp_options;
MPErrorCode error;
MPNumber result = mp_new();
@@ -159,29 +147,36 @@ mate_calc_application_command_line(GApplication *application,
if (error == PARSER_ERR_MP)
{
- g_application_command_line_printerr(command_line,
- "Error: %s\n", mp_get_error());
+ g_printerr("Error: %s\n", mp_get_error());
mp_clear(&result);
return 1;
}
else if (error != 0)
{
- g_application_command_line_printerr(command_line,
- "Error: %s\n", mp_error_code_to_string(error));
+ g_printerr("Error: %s\n", mp_error_code_to_string(error));
mp_clear(&result);
return 1;
}
else
{
- result_str = mp_serializer_to_string(
- mp_serializer_new(MP_DISPLAY_FORMAT_AUTOMATIC, 10, 9), &result);
- g_application_command_line_print(command_line, "%s\n", result_str);
+ MpSerializer *serializer = mp_serializer_new(MP_DISPLAY_FORMAT_AUTOMATIC, 10, 9);
+ result_str = mp_serializer_to_string(serializer, &result);
+ g_print("%s\n", result_str);
g_free(result_str);
+ g_object_unref(serializer);
mp_clear(&result);
return 0;
}
}
+ /* Let the default handler continue */
+ return -1;
+}
+
+static gint
+mate_calc_application_command_line(GApplication *application,
+ GApplicationCommandLine *command_line)
+{
/* Activate normal GUI mode */
g_application_activate(application);