Allow dictionary 'var_deleted' callback to examine the deleted var.
[pspp] / src / data / dictionary.h
index 3455a74f9677dcbb7be4ae50ff8e3844c9963b7b..d50921201bb8e3d366198997ed223f9134324703 100644 (file)
 
 #include <stdbool.h>
 #include <stddef.h>
-#include <data/case.h>
-#include <data/dict-class.h>
+#include "data/case.h"
+#include "data/dict-class.h"
 
 struct string;
 struct ccase;
 
 /* Creating dictionaries. */
-struct dictionary *dict_create (void);
+struct dictionary *dict_create (const char *encoding);
 struct dictionary *dict_clone (const struct dictionary *);
 
 
@@ -127,14 +127,15 @@ void dict_set_label (struct dictionary *, const char *);
 /* Documents. */
 #define DOC_LINE_LENGTH 80 /* Fixed length of document lines. */
 
-const char *dict_get_documents (const struct dictionary *);
-void dict_set_documents (struct dictionary *, const char *);
+const struct string_array *dict_get_documents (const struct dictionary *);
+void dict_set_documents (struct dictionary *, const struct string_array *);
+void dict_set_documents_string (struct dictionary *, const char *);
 void dict_clear_documents (struct dictionary *);
 
-void dict_add_document_line (struct dictionary *, const char *);
+bool dict_add_document_line (struct dictionary *, const char *,
+                             bool issue_warning);
 size_t dict_get_document_line_cnt (const struct dictionary *);
-void dict_get_document_line (const struct dictionary *,
-                             size_t, struct string *);
+const char *dict_get_document_line (const struct dictionary *, size_t);
 
 /* Vectors. */
 bool dict_create_vector (struct dictionary *, const char *name,
@@ -163,9 +164,11 @@ void dict_set_attributes (struct dictionary *, const struct attrset *);
 bool dict_has_attributes (const struct dictionary *);
 
 /* Data encoding. */
-void dict_set_encoding (struct dictionary *d, const char *enc);
 const char *dict_get_encoding (const struct dictionary *d);
 
+bool dict_id_is_valid (const struct dictionary *, const char *id,
+                       bool issue_error);
+
 /* Internal variables. */
 struct variable *dict_create_internal_var (int case_idx, int width);
 void dict_destroy_internal_var (struct variable *);
@@ -174,7 +177,8 @@ void dict_destroy_internal_var (struct variable *);
 struct dict_callbacks
  {
   void (*var_added) (struct dictionary *, int, void *);
-  void (*var_deleted) (struct dictionary *, int, int, int, void *);
+  void (*var_deleted) (struct dictionary *, const struct variable *,
+                       int dict_index, int case_index, void *);
   void (*var_changed) (struct dictionary *, int, void *);
   void (*var_resized) (struct dictionary *, int, int, void *);
   void (*weight_changed) (struct dictionary *, int, void *);