X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-case-file.c;h=6b0f2111272282c90c637e457a4d80fa8efc4d61;hb=f43378497b8400e9c22a3485c534693dc1bc9554;hp=f869e4b0dbf6aaea22383e7735efa8bd56c49397;hpb=57b436a22d9ae0e395fb2e3ce101c2b5c2e6939e;p=pspp diff --git a/src/ui/gui/psppire-case-file.c b/src/ui/gui/psppire-case-file.c index f869e4b0db..6b0f211127 100644 --- a/src/ui/gui/psppire-case-file.c +++ b/src/ui/gui/psppire-case-file.c @@ -156,7 +156,7 @@ psppire_case_file_new (gint val_cnt) { PsppireCaseFile *cf = g_object_new (G_TYPE_PSPPIRE_CASE_FILE, NULL); - cf->flexifile = flexifile_create(val_cnt); + cf->flexifile = flexifile_create (val_cnt); return cf; } @@ -177,23 +177,19 @@ psppire_case_file_delete_cases(PsppireCaseFile *cf, gint n_cases, gint first) return result; } -/* Insert a blank case to the case file */ +/* Insert case CC into the case file before POSN */ gboolean psppire_case_file_insert_case(PsppireCaseFile *cf, - gint posn) + struct ccase *cc, + gint posn) { bool result ; - struct ccase cc; g_return_val_if_fail(cf, FALSE); g_return_val_if_fail(cf->flexifile, FALSE); - case_create (&cc, casefile_get_value_cnt(cf->flexifile)); - - result = flexifile_insert_case(FLEXIFILE(cf->flexifile), &cc, posn); + result = flexifile_insert_case(FLEXIFILE(cf->flexifile), cc, posn); - case_destroy (&cc); - if ( result ) g_signal_emit(cf, signal[CASE_INSERTED], 0, posn); else @@ -202,6 +198,7 @@ psppire_case_file_insert_case(PsppireCaseFile *cf, return result; } + /* Append a case to the case file */ gboolean psppire_case_file_append_case(PsppireCaseFile *cf, @@ -329,7 +326,7 @@ psppire_case_file_sort(PsppireCaseFile *cf, const struct sort_criteria *sc) struct ccase cc; gint c; struct casefile *cfile; - struct casereader *reader = casefile_get_reader(cf->flexifile); + struct casereader *reader = casefile_get_reader (cf->flexifile, NULL); const int value_cnt = casefile_get_value_cnt(cf->flexifile); cfile = sort_execute(reader, sc); @@ -354,8 +351,8 @@ psppire_case_file_sort(PsppireCaseFile *cf, const struct sort_criteria *sc) /* Resize the cases in the casefile, by inserting N_VALUES into every one of them. */ gboolean -psppire_case_file_insert_values(PsppireCaseFile *cf, - gint n_values, gint before) +psppire_case_file_insert_values (PsppireCaseFile *cf, + gint n_values, gint before) { g_return_val_if_fail(cf, FALSE); @@ -365,6 +362,18 @@ psppire_case_file_insert_values(PsppireCaseFile *cf, return TRUE; } - return flexifile_resize(FLEXIFILE(cf->flexifile), n_values, before); + return flexifile_resize (FLEXIFILE(cf->flexifile), n_values, before); } +/* Fills C with the CASENUMth case. + Returns true on success, false otherwise. + */ +gboolean +psppire_case_file_get_case (const PsppireCaseFile *cf, gint casenum, + struct ccase *c) +{ + g_return_val_if_fail (cf, FALSE); + g_return_val_if_fail (cf->flexifile, FALSE); + + return flexifile_get_case (FLEXIFILE(cf->flexifile), casenum, c); +}