X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fdictionary%2Fsys-file-info.c;h=10ee6c8073d4b418fee2cf952c0e2047233020dd;hb=456b47421c16fdbbfe7f1e74e661d7c7876ff6df;hp=9cb551044914098e389c044e0d48e8098a856365;hpb=5cab4cf3322f29c0ed7134d23740e07382914f20;p=pspp diff --git a/src/language/dictionary/sys-file-info.c b/src/language/dictionary/sys-file-info.c index 9cb5510449..10ee6c8073 100644 --- a/src/language/dictionary/sys-file-info.c +++ b/src/language/dictionary/sys-file-info.c @@ -89,6 +89,8 @@ static void report_encodings (const struct file_handle *, struct pool *, char **titles, bool *ids, char **strings, size_t n_strings); +static char *get_documents_as_string (const struct dictionary *); + static void add_row (struct pivot_table *table, const char *attribute, struct pivot_value *value) @@ -239,6 +241,10 @@ cmd_sysfile_info (struct lexer *lexer, struct dataset *ds UNUSED) add_row (table, N_("Encoding"), pivot_value_new_user_text (dict_get_encoding (d), -1)); + if (dict_get_document_line_cnt (d) > 0) + add_row (table, N_("Documents"), + pivot_value_new_user_text_nocopy (get_documents_as_string (d))); + pivot_table_submit (table); size_t n_vars = dict_get_var_cnt (d); @@ -249,6 +255,7 @@ cmd_sysfile_info (struct lexer *lexer, struct dataset *ds UNUSED) display_value_labels (vars, n_vars); display_attributes (dict_get_attributes (dataset_dict (ds)), vars, n_vars, DF_ATTRIBUTES); + free (vars); dict_unref (d); @@ -397,6 +404,20 @@ display_macros (void) msg (SW, _("Macros not supported.")); } +static char * +get_documents_as_string (const struct dictionary *dict) +{ + const struct string_array *documents = dict_get_documents (dict); + struct string s = DS_EMPTY_INITIALIZER; + for (size_t i = 0; i < documents->n; i++) + { + if (i) + ds_put_byte (&s, '\n'); + ds_put_cstr (&s, documents->strings[i]); + } + return ds_steal_cstr (&s); +} + static void display_documents (const struct dictionary *dict) { @@ -405,20 +426,12 @@ display_documents (const struct dictionary *dict) table, PIVOT_AXIS_COLUMN, N_("Documents"), N_("Document")); d->hide_all_labels = true; - const struct string_array *documents = dict_get_documents (dict); - if (!documents->n) + if (!dict_get_documents (dict)->n) pivot_table_put1 (table, 0, pivot_value_new_text (N_("(none)"))); else { - struct string s = DS_EMPTY_INITIALIZER; - for (size_t i = 0; i < documents->n; i++) - { - if (i) - ds_put_byte (&s, '\n'); - ds_put_cstr (&s, documents->strings[i]); - } - pivot_table_put1 (table, 0, - pivot_value_new_user_text_nocopy (ds_steal_cstr (&s))); + char *docs = get_documents_as_string (dict); + pivot_table_put1 (table, 0, pivot_value_new_user_text_nocopy (docs)); } pivot_table_submit (table);