X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-dialog-action-factor.c;h=e1edf4a4839303560d0cc8c544d15ee4b70fdae8;hb=14f4522a17db23e67a6fa17876633cc6260cb42b;hp=6b6144a6fb70559928cd8e3831d7f98396940799;hpb=e0d88baeadd6bc1eb1176da30de771ac9658f4c9;p=pspp diff --git a/src/ui/gui/psppire-dialog-action-factor.c b/src/ui/gui/psppire-dialog-action-factor.c index 6b6144a6fb..e1edf4a483 100644 --- a/src/ui/gui/psppire-dialog-action-factor.c +++ b/src/ui/gui/psppire-dialog-action-factor.c @@ -1,5 +1,5 @@ /* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation + Copyright (C) 2009, 2010, 2011, 2012, 2014 Free Software Foundation This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,6 +19,8 @@ #include "psppire-dialog-action-factor.h" +#include + #include "psppire-var-view.h" #include "dialog-common.h" #include "psppire-selector.h" @@ -26,6 +28,7 @@ #include "psppire-dialog.h" #include "builder-wrapper.h" #include "psppire-scanf.h" +#include #include "gettext.h" #define _(msgid) gettext (msgid) @@ -58,69 +61,69 @@ generate_syntax (PsppireDialogAction *act) PsppireDialogActionFactor *rd = PSPPIRE_DIALOG_ACTION_FACTOR (act); gchar *text = NULL; - GString *string = g_string_new ("FACTOR "); + struct string str; + ds_init_cstr (&str, "FACTOR "); - g_string_append (string, "\n\t/VARIABLES="); + ds_put_cstr (&str, "\n\t/VARIABLES="); - psppire_var_view_append_names (PSPPIRE_VAR_VIEW (rd->variables), 0, string); + psppire_var_view_append_names_str (PSPPIRE_VAR_VIEW (rd->variables), 0, &str); - g_string_append (string, "\n\t/CRITERIA = "); + ds_put_cstr (&str, "\n\t/CRITERIA = "); if ( rd->extraction.explicit_nfactors ) - g_string_append_printf (string, "FACTORS (%d)", rd->extraction.n_factors); + ds_put_c_format (&str, "FACTORS (%d)", rd->extraction.n_factors); else - g_string_append_printf (string, "MINEIGEN (%g)", rd->extraction.mineigen); + ds_put_c_format (&str, "MINEIGEN (%.*g)", + DBL_DIG + 1, rd->extraction.mineigen); /* The CRITERIA = ITERATE subcommand is overloaded. It applies to the next /ROTATION and/or EXTRACTION command whatever comes first. */ - g_string_append_printf (string, " ITERATE (%d)", rd->extraction.n_iterations); + ds_put_c_format (&str, " ITERATE (%d)", rd->extraction.n_iterations); - g_string_append (string, "\n\t/EXTRACTION ="); + ds_put_cstr (&str, "\n\t/EXTRACTION ="); if ( rd->extraction.paf) - g_string_append (string, "PAF"); + ds_put_cstr (&str, "PAF"); else - g_string_append (string, "PC"); + ds_put_cstr (&str, "PC"); - g_string_append (string, "\n\t/METHOD = "); + ds_put_cstr (&str, "\n\t/METHOD = "); if ( rd->extraction.covariance ) - g_string_append (string, "COVARIANCE"); + ds_put_cstr (&str, "COVARIANCE"); else - g_string_append (string, "CORRELATION"); - - + ds_put_cstr (&str, "CORRELATION"); if ( rd->extraction.scree ) { - g_string_append (string, "\n\t/PLOT = "); - g_string_append (string, "EIGEN"); + ds_put_cstr (&str, "\n\t/PLOT = "); + ds_put_cstr (&str, "EIGEN"); } - g_string_append (string, "\n\t/PRINT = "); - g_string_append (string, "INITIAL "); + ds_put_cstr (&str, "\n\t/PRINT = "); + ds_put_cstr (&str, "INITIAL "); if ( rd->extraction.unrotated ) - g_string_append (string, "EXTRACTION "); + ds_put_cstr (&str, "EXTRACTION "); if ( rd->rotation.rotated_solution ) - g_string_append (string, "ROTATION"); + ds_put_cstr (&str, "ROTATION"); /* The CRITERIA = ITERATE subcommand is overloaded. It applies to the next /ROTATION and/or EXTRACTION command whatever comes first. */ - g_string_append_printf (string, "\n\t/CRITERIA = ITERATE (%d)", rd->rotation.iterations ); + ds_put_c_format (&str, "\n\t/CRITERIA = ITERATE (%d)", rd->rotation.iterations ); - g_string_append (string, "\n\t/ROTATION = "); - g_string_append (string, rot_method_syntax[rd->rotation.method]); + ds_put_cstr (&str, "\n\t/ROTATION = "); + ds_put_cstr (&str, rot_method_syntax[rd->rotation.method]); - g_string_append (string, "."); - text = string->str; + ds_put_cstr (&str, "."); + text = ds_steal_cstr (&str); - g_string_free (string, FALSE); + ds_destroy (&str); return text; }