diff options
| author | mbkma <[email protected]> | 2026-03-19 20:25:43 +0100 |
|---|---|---|
| committer | mbkma <[email protected]> | 2026-03-19 20:25:43 +0100 |
| commit | 039ef5c5ecb54511160042720ef40ed6a105e46e (patch) | |
| tree | 132f7f062ee55c88f4e35d34dc54c3deac9e9208 | |
| parent | 23cd91ef515e51e508f6e4246d12c9a947b121ad (diff) | |
| download | mate-calc-gtk-application.tar.bz2 mate-calc-gtk-application.tar.xz | |
solve in local options, unref mp_serializergtk-application
| -rw-r--r-- | src/mate-calc-application.c | 47 |
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); |
