Use %zu, not %d, to format a size_t.
[pspp-builds.git] / src / language / dictionary / sys-file-info.c
index 952930b5bad39332d0b1f70d5e76e706568ba930..3f00106ea2cf9c2b975d4dc7f0281389f783192c 100644 (file)
 
 #include "data/attributes.h"
 #include "data/casereader.h"
+#include "data/dataset.h"
 #include "data/dictionary.h"
 #include "data/file-handle-def.h"
 #include "data/format.h"
 #include "data/missing-values.h"
-#include "data/procedure.h"
 #include "data/sys-file-reader.h"
 #include "data/value-labels.h"
 #include "data/variable.h"
@@ -37,6 +37,7 @@
 #include "libpspp/array.h"
 #include "libpspp/message.h"
 #include "libpspp/misc.h"
+#include "libpspp/string-array.h"
 #include "output/tab.h"
 
 #include "gl/minmax.h"
@@ -163,7 +164,7 @@ cmd_sysfile_info (struct lexer *lexer, struct dataset *ds UNUSED)
   dict_destroy (d);
 
   fh_unref (h);
-  return lex_end_of_command (lexer);
+  return CMD_SUCCESS;
 }
 \f
 /* DISPLAY utility. */
@@ -194,12 +195,10 @@ cmd_display (struct lexer *lexer, struct dataset *ds)
        return CMD_FAILURE;
       if (dict_get_label (dataset_dict (ds)) == NULL)
        tab_output_text (TAB_LEFT,
-                        _("The active file does not have a file label."));
+                        _("The active dataset does not have a file label."));
       else
-       {
-         tab_output_text (TAB_LEFT | TAT_TITLE, _("File label:"));
-         tab_output_text (TAB_LEFT | TAB_FIX, dict_get_label (dataset_dict (ds)));
-       }
+        tab_output_text_format (TAB_LEFT, _("File label: %s"),
+                                dict_get_label (dataset_dict (ds)));
     }
   else
     {
@@ -210,7 +209,7 @@ cmd_display (struct lexer *lexer, struct dataset *ds)
       if (lex_match_id (lexer, "VECTORS"))
        {
          display_vectors (dataset_dict(ds), sorted);
-         return lex_end_of_command (lexer);
+         return CMD_SUCCESS;
        }
       else if (lex_match_id (lexer, "SCRATCH")) 
         {
@@ -280,7 +279,7 @@ cmd_display (struct lexer *lexer, struct dataset *ds)
                                       flags);
     }
 
-  return lex_end_of_command (lexer);
+  return CMD_SUCCESS;
 }
 
 static void
@@ -292,24 +291,19 @@ display_macros (void)
 static void
 display_documents (const struct dictionary *dict)
 {
-  const char *documents = dict_get_documents (dict);
+  const struct string_array *documents = dict_get_documents (dict);
 
-  if (documents == NULL)
-    tab_output_text (TAB_LEFT, _("The active file dictionary does not "
+  if (string_array_is_empty (documents))
+    tab_output_text (TAB_LEFT, _("The active dataset dictionary does not "
                                  "contain any documents."));
   else
     {
-      struct string line = DS_EMPTY_INITIALIZER;
       size_t i;
 
       tab_output_text (TAB_LEFT | TAT_TITLE,
-                      _("Documents in the active file:"));
+                      _("Documents in the active dataset:"));
       for (i = 0; i < dict_get_document_line_cnt (dict); i++)
-        {
-          dict_get_document_line (dict, i, &line);
-          tab_output_text (TAB_LEFT | TAB_FIX, ds_cstr (&line));
-        }
-      ds_destroy (&line);
+        tab_output_text (TAB_LEFT | TAB_FIX, dict_get_document_line (dict, i));
     }
 }
 
@@ -400,7 +394,7 @@ display_attributes (struct tab_table *t, const struct attrset *set, int flags,
       for (i = 0; i < n_values; i++)
         {
           if (n_values > 1)
-            tab_text_format (t, c, r, TAB_LEFT, "%s[%d]", name, i + 1);
+            tab_text_format (t, c, r, TAB_LEFT, "%s[%zu]", name, i + 1);
           else
             tab_text (t, c, r, TAB_LEFT, name);
           tab_text (t, c + 1, r, TAB_LEFT, attribute_get_value (attr, i));
@@ -588,19 +582,9 @@ describe_variable (const struct variable *v, struct tab_table *t, int r,
       for (i = 0; i < n_labels; i++)
         {
           const struct val_lab *vl = labels[i];
-         char buf[MAX_STRING + 1];
 
-         if (var_is_alpha (v))
-           {
-              int width = var_get_width (v);
-             memcpy (buf, value_str (&vl->value, width), width);
-             buf[width] = 0;
-           }
-         else
-           sprintf (buf, "%g", vl->value.f);
-
-         tab_text (t, 1, r, TAB_NONE, buf);
-         tab_text (t, 2, r, TAB_LEFT, val_lab_get_label (vl));
+         tab_value (t, 1, r, TAB_NONE, &vl->value, v, NULL);
+         tab_text (t, 2, r, TAB_LEFT, val_lab_get_escaped_label (vl));
          r++;
        }
       free (labels);